实战:域名免端口
tags:实战,反向代理
前言
在实际使用中,由于web服务器启动于不同进程,因此需要指定不同的端口,也就意味着必然有web应用要使用80之外的端口,这样在地址栏中就必须出现端口号,非常影响用户体验。
比较好的方式,通过使用不同的域名或者二级域名,然后通过nginx反向代理的方式转发请求给到实际负责处理的服务器。
下面是这种方式的典型使用场景的例子:
实际web服务器的地址 | 反向代理之后给到终端用户的地址 |
---|---|
*:8800 | http://git.basiccloud.net |
*:8081 | http://maven.basiccloud.net |
实战
创建虚拟主机 git.basiccloud.net
目标:http://git.basiccloud.net 应该指向当前机器上运行于 8800 端口的 gitlab 服务器。
在 /etc/nginx/sites-available/
下新建 git.basiccloud.net 文件,内容如下:
server {
listen 80;
server_name git.basiccloud.net;
location /
{
proxy_pass http://127.0.0.1:8800;
}
}
将 git.basiccloud.net 站点文件链接到 /etc/nginx/sites-enabled/
目录:
sudo ln -s /etc/nginx/sites-available/git.basiccloud.net /etc/nginx/sites-enabled/git.basiccloud.net
修改完成之后,使用命令检测配置修改结果并重新装载配置:
sudo nginx -t
sudo nginx -s reload
创建虚拟主机 maven.basiccloud.net
目标:http://maven.basiccloud.net 应该指向当前机器上运行于 8081 端口的 artifactory 服务器。
在 /etc/nginx/sites-available/
下新建 maven.basiccloud.net 文件,内容如下:
server {
listen 80;
server_name maven.basiccloud.net;
location /
{
proxy_pass http://127.0.0.1:8081;
}
}
将 maven.basiccloud.net 站点文件链接到 /etc/nginx/sites-enabled/
目录:
sudo ln -s /etc/nginx/sites-available/maven.basiccloud.net /etc/nginx/sites-enabled/maven.basiccloud.net