路漫漫其修远兮
头像

codermjy

A programmer who subconsciously views himself as an artist

will enjoy what he does and will do it better

使用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安装教程:
image

  1. 安装Nginx: 使用yum包管理器来安装Nginx。

    sudo yum install nginx -y
    
  2. 启动Nginx服务: 安装完成后,启动Nginx服务并设置为开机自启动。

    sudo systemctl start nginx
    sudo systemctl enable nginx
    
  3. 验证Nginx安装: 打开浏览器,访问你的服务器IP地址或域名,加上/,http://你的服务器ip/,例如我这台服务器的ip是123.207.74.117
    image
    打开浏览器访问:http://123.207.74.117,你应该能看到Nginx的默认欢迎页面。
    image
    如果你已经为你的域名配置了解析记录
    image
    可以通过域名访问,例如:http://www.11erotic.icu

  4. 检查Nginx状态: 你也可以通过命令行检查Nginx服务的状态。

    sudo systemctl status nginx
    

    接下来,我们要配置Nginx,将域名转发到不同服务端口
    需要编辑Nginx的配置文件,/etc/nginx/nginx.conf

  5. 配置不同的子域名,在DNS解析控制台,为你的服务配置不同的子域名,解析的服务器ip都是一台服务器
    image

    这个时候,子域名还是会解析到默认的80端口所在的服务,接下来,就需要配置Nginx来实现了。

  6. 配置Nginx转发规则
    使用文本编辑器查看和编辑,如果你需要编辑配置文件,可以使用文本编辑器如 vi 打开配置文件:

    sudo vi /etc/nginx/nginx.conf
    

    我们可以看到Nginx的默认配置,默认将80端口转发到了/usr/share/nginx/html页面,这就是我们之前看见的欢迎页面
    image

    我们只需要参考这套配置,配置自己的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

posted @ 2025-03-07 17:45  不愿染是与非  阅读(31)  评论(0)    收藏  举报