作为个人网站的服务器,一般都是一台。上面部署了各种应用,都是不同的端口。但是域名只能解析到 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