服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-09 更新于 2026-10-09 简米科技 4,360 字 10 分钟阅读

二级域名如何指定端口访问?配置步骤详解,nginx反向代理设置

导读二级域名不能靠DNS直接指定端口;DNS只负责把 sub.example.com 解析到服务器IP,端口要么写进URL,要么由Nginx、Apache、IIS等反向代理或端口转发来接管, 想让访客只输入二级域名就访问8080、3000这类后端端口,核心做法是:在80或443入口做反向代理,后端服务只监听本机端口……

二级域名不能靠DNS直接指定端口;DNS只负责把 sub.example.com 解析到服务器IP,端口要么写进URL,要么由Nginx、Apache、IIS等反向代理或端口转发来接管。 想让访客只输入二级域名就访问8080、3000这类后端端口,核心做法是:在80或443入口做反向代理,后端服务只监听本机端口。

二级域名如何指定端口访问?先分清“带端口”和“不带端口”两种结果

直接访问 sub.example.com:8080 的配置逻辑

这种方式最直接,但地址栏一定会显示端口,配置点只有三个:

  • 在DNS服务商添加A记录,主机记录填 sub,记录值填服务器公网IP。
  • 云服务器安全组放行TCP 8080,系统防火墙也要放行。
  • 后端服务监听 0.0.0:8080,或用Docker映射到公网。

验证命令可以这样跑:

dig sub.example.com +short
ss -lntp | grep 8080
curl -I http://127.0.0.1:8080

如果curl通、外网不通,问题通常在安全组或防火墙。据统计,二级域名配置失败多数卡在DNS解析和安全组。

通过反向代理隐藏端口

如果目标地址是 https://sub.example.com,不带端口,那就不能靠DNS,必须让Nginx监听80或443,再把请求转给本机端口。

典型路径:

  • 浏览器访问 sub.example.com,默认连80或443。
  • Nginx匹配 server_name sub.example.com。
  • Nginx用 proxy_pass http://127.0.0.1:8080 转发。
  • 后端端口不暴露公网,只在本机监听。

这样做的好处是HTTPS好加、端口不暴露、备案和访问入口也更规范。

国内服务器二级域名指定端口访问配置步骤?通用五步法

第一步:添加DNS解析记录

登录域名DNS控制台,添加记录:

  • 记录类型:A
  • 主机记录:sub
  • 记录值:服务器公网IP
  • TTL:600或默认

如果公网IP会变,可以CNAME到DDNS域名,解析后检查:

nslookup sub.example.com 8.8.8.8

返回的IP必须是你的服务器IP,解析没生效前,后面配置都会白做。

第二步:确认后端端口监听状态

二级域名如何指定端口访问?配置步骤详解,nginx反向代理设置

先确认服务本身正常:

ss -lntp | grep 8080
curl -I http://127.0.0.1:8080

如果监听地址是 0.0.1:8080,适合让Nginx代理,如果监听 0.0.0:8080,也能代理,但要注意安全组不要对全网开放8080。

第三步:配置Nginx反向代理

在 /etc/nginx/conf.d/sub.example.com.conf 写入:

server {
    listen 80;
    server_name sub.example.com;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

然后检查并重载:

nginx -t
systemctl reload nginx

Nginx官方文档对 proxy_set_header 有明确说明,保留真实IP和协议信息能减少后端应用取错地址的问题。

第四步:云安全组与系统防火墙

云服务器安全组只放行80和443,不要把3306、6379、8080管理端口直接开到公网,系统防火墙按需操作:

ufw allow 80/tcp
ufw allow 443/tcp
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

如果只是测试,可以临时放行8080,但生产环境不建议长期暴露。

第五步:HTTPS与访问测试

用Certbot申请证书:

certbot --nginx -d sub.example.com

测试入口:

curl -I http://sub.example.com
curl -I https://sub.example.com

如果浏览器仍显示端口,先看地址栏是不是 sub.example.com:8080,只要URL带非标准端口,浏览器就会显示,要隐藏端口,只能走80或443代理。

宝塔面板二级域名绑定端口和Nginx反向代理哪个好?

这是很多运维新手会搜的对比问题,两者本质一样,都是让Web服务器做反向代理,区别在操作方式和可控性。

对比项 宝塔面板 手动Nginx

二级域名如何指定端口访问?配置步骤详解,nginx反向代理设置

适合人群

新手、小项目、单机部署 团队、多环境、批量运维
操作路径 网站、添加站点、反向代理 编辑conf文件、重载服务
灵活性 够用,依赖面板功能 高,可版本控制
HTTPS 面板一键申请 Certbot或手动证书
排错 看面板日志和配置 看Nginx日志、系统日志

宝塔面板操作路径

  • 网站,添加站点,域名填 sub.example.com。
  • 设置,反向代理,目标URL填 http://127.0.0.1:8080。
  • 保存后,在SSL里申请Let's Encrypt证书。
  • 安全组只放行80和443。

手动Nginx适合什么情况

需要多级路径、灰度发布、批量配置时,手动Nginx更稳,行业共识认为,生产环境更看重可审计与可回滚,配置文件纳入Git比面板点选更好追踪。

二级域名带端口访问需要备案吗?国内服务器常见情况

备案看域名和服务器位置,不看端口

据工信部备案管理相关规定,境内服务器绑定域名提供互联网信息服务,通常需要ICP备案,二级域名一般随主域名备案,但部分接入商要求单独添加或做接入验证。非标准端口不能替代备案。

海外与内网场景

香港或海外服务器通常不要求备案,但访问速度和合规风险要自己评估,内网测试可以修改hosts:

  • Windows:C:WindowsSystem32driversetchosts
  • Linux:/etc/hosts
  • 添加:168.1.10 sub.example.com

这样内网访问 sub.example.com:8080 可以通,若要不带端口,内网同样需要Nginx代理。

二级域名指定端口访问多少钱?成本构成与避坑

成本主要是域名年费、云服务器、SSL证书和人工,Let's Encrypt证书免费,Nginx免费,宝塔面板有免费版,付费通常花在代维、面板专业版或高防服务器上,价格因注册局、云厂商、地域和配置差异较大,没有统一数字。

避坑重点:

  • 不要把数据库端口、Redis端口直接开公网。
  • 不要用来路不明的端口映射工具,容易泄露内网。
  • 二级域名如何指定端口访问?配置步骤详解,nginx反向代理设置

  • 不要以为换了非标准端口就不用备案。

不同场景实操:二级域名指定端口访问怎么落地

Node.js或Python后端跑在3000端口

Nginx配置:

server {
    listen 80;
    server_name api.example.com;
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
    }
}

WebSocket场景要保留Upgrade头。

Docker容器只暴露本机端口

启动时绑定本机:

docker run -d --name app -p 127.0.0.1:8080:80 nginx

再用宿主Nginx代理到 0.0.1:8080,这样容器端口不直接暴露公网。

内网测试和hosts

内网没有公网DNS时,用hosts把二级域名指到内网IP,能访问 sub.example.com:8080 说明DNS和端口通了,要访问 sub.example.com,仍需内网Nginx监听80并转发。

二级域名指定端口访问常见问答

二级域名如何指定端口访问后,浏览器仍显示端口号怎么办?

直接访问 sub.example.com:8080 一定显示端口,要隐藏端口,必须让Nginx监听80或443并反向代理,检查 server_name、DNS缓存、CDN回源端口,以及地址栏是否手动带了端口。

二级域名可以同时代理多个端口吗?

可以,按路径拆分:

location /api/ {
    proxy_pass http://127.0.0.1:3000/;
}
location /admin/ {
    proxy_pass http://127.0.0.1:8081/;
}

也可以按二级域名拆分,api.example.com 走3000,admin.example.com 走8081,注意 proxy_pass 末尾斜杠会影响路径拼接。

二级域名指定端口访问需要修改DNS的SRV记录吗?

不需要,HTTP和HTTPS浏览器不查询SRV记录,SRV主要用于SIP、XMPP等协议,HTTP端口由URL或反向代理决定。

DNS负责名字到IP,端口由代理或URL决定。 生产环境优先用Nginx反向代理80和443,后端端口只开本机,既隐藏端口,也便于HTTPS和备案合规。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱