在Nginx中配置域名和非默认端口主要通过两种方式实现:直接监听非默认端口或使用80端口的反向代理转发。

直接监听非默认端口

您可以在Nginx配置中使用listen指令直接指定非默认端口:

server {
    listen 8080;
    server_name example.com;
    root /var/www/example;
    index index.html;
}

这种配置让Nginx直接在8080端口上提供服务,用户需要通过http://example.com:8080访问。

 

使用反向代理隐藏端口

更常见的做法是让Nginx监听80端口,然后通过反向代理将请求转发到实际服务的非默认端口:

server {
    listen 80;
    server_name sec.xxx.cn;
    
    location / {
        proxy_pass http://127.0.0.1:8790;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
这种方式下,用户访问http://sec.xxx.cn(无需指定端口),Nginx会自动将请求转发到本机的8790端口服务。

 

多域名多端口配置

当需要为不同域名配置不同后端端口时,可以设置多个server块:

server {
    listen 80;
    server_name mt.xxx.cn;
    location / {
        proxy_pass http://127.0.0.1:8166;
    }
}

server {
    listen 80;
    server_name yun.xxx.cn;
    location / {
        proxy_pass http://127.0.0.1:45606;
    }
}
这样配置后,mt.xxx.cn指向8166端口服务,yun.xxx.cn指向45606端口服务。

 

配置验证与重载

配置完成后,使用以下命令验证配置语法并重新加载:

nginx -t
nginx -s reload
反向代理方式是最推荐的解决方案,因为它既保持了用户访问的简洁性(无需记忆端口号),又能灵活管理多个服务。