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

浙公网安备 33010602011771号