作为个人网站的服务器,一般都是一台。上面部署了各种应用,都是不同的端口。但是域名只能解析到 80 端口,而且如果你使用 隐性URL、显性URL 转发的话,又会直接 301 跳转,体验非常不好。这可如何是好呢?
这就需要用到 Nginx 做反向代理了。什么是反向代理?我们先来看一下解释:
在计算机网络中,反向代理是代理服务器的一种。反向代理服务器根据客户端的请求,实际将客户端请求转发到内部其它端口服务,并将响应返回给客户端。用户感知不到真实服务器的存在
简单来说,我们可以通过在服务器上配置反向代理,实现将不同子域名访问到不同的服务:
域名
IP及端口
www.11erotic.icu
123.210.116:8822
home.11erotic.icu
123.210.116:8810
yapi.11erotic.icu
123.21.116:8899
首先,你需要在你的服务器上安装 Nginx,这里我用的是腾讯轻量应用服务器,提供在线的shell控制台功能和文件编辑管理,也可以通过AI直接查询Nginx安装教程:
安装Nginx: 使用yum包管理器来安装Nginx。
sudo yum install nginx -y
启动Nginx服务: 安装完成后,启动Nginx服务并设置为开机自启动。
sudo systemctl start nginx
sudo systemctl enable nginx
验证Nginx安装: 打开浏览器,访问你的服务器IP地址或域名,加上/,http://你的服务器ip/,例如我这台服务器的ip是123.207.74.117
打开浏览器访问:http://123.207.74.117,你应该能看到Nginx的默认欢迎页面。
如果你已经为你的域名配置了解析记录
可以通过域名访问,例如:http://www.11erotic.icu
检查Nginx状态: 你也可以通过命令行检查Nginx服务的状态。
sudo systemctl status nginx
接下来,我们要配置Nginx,将域名转发到不同服务端口
需要编辑Nginx的配置文件,/etc/nginx/nginx.conf
配置不同的子域名,在DNS解析控制台,为你的服务配置不同的子域名,解析的服务器ip都是一台服务器
这个时候,子域名还是会解析到默认的80端口所在的服务,接下来,就需要配置Nginx来实现了。
配置Nginx转发规则
使用文本编辑器查看和编辑,如果你需要编辑配置文件,可以使用文本编辑器如 vi 打开配置文件:
sudo vi /etc/nginx/nginx.conf
我们可以看到Nginx的默认配置,默认将80端口转发到了/usr/share/nginx/html页面,这就是我们之前看见的欢迎页面
我们只需要参考这套配置,配置自己的server,就能将不同子域名解析到不同端口了
假设你现在有一条 server 是解析到8080应用:
server {
listen 80;
server_name home.11erotic.icu;
location / {
proxy_pass http://localhost:8080;
}
}
可再添加一条 server 指向你的另一个应用8082:
server {
listen 80;
server_name shop.anyway.com;
location / {
proxy_pass http://localhost:8082;
}
}
到此反向代理就已经配置完成了,还需要 reload 一下 Nginx 的配置文件即可使用二级域名访问
输入命令 sudo systemctl reload nginx 重启 Nginx