You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cloudflare中实现IP:端口到域名:其他端口路由?附Nginx配置疑问

解决Nginx域名与端口路由的问题

DNS记录(A/CNAME)本身不支持指定端口,所以没法直接通过test.xxx.com指向服务器的81端口。要实现访问test.xxx.com对应到你81端口的Nginx页面,以下是两种实用方案:

方案1:反向代理(适配独立Nginx实例)

如果你的80和81端口是两个独立的Nginx实例,可在监听80端口的Nginx中新增一个server块,将test子域名的请求转发到本地81端口:

server {
    listen 80;
    server_name test.xxx.com; # 替换为你的test子域名

    location / {
        proxy_pass http://127.0.0.1:81;
        # 保留请求头信息,避免后端服务异常
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

修改完成后重启80端口的Nginx:

nginx -s reload

此时用户访问test.xxx.com时,请求会被自动转发到81端口的页面,无需在DNS中添加端口。

方案2:单Nginx实例配置虚拟主机(更简洁)

如果两个页面可以整合到同一个Nginx实例,直接通过域名区分站点即可,无需额外代理:

# 主域名(@记录)对应的80端口站点
server {
    listen 80;
    server_name xxx.com; # 替换为你的主域名

    root /path/to/main-site-files; # 主页面文件路径
    index index.html;
}

# test子域名对应的站点(复用80端口,指向不同文件目录)
server {
    listen 80;
    server_name test.xxx.com;

    root /path/to/test-site-files; # test页面文件路径
    index index.html;
}

注意事项

  • 确保DNS已配置test子域名的A记录,指向同一IP(1.2.3.4),无需添加端口;
  • 服务器防火墙需开放80端口,81端口可仅对内开放,无需暴露到外网。

内容的提问来源于stack exchange,提问作者berriz44

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 14:11:09