域名 HTTPS 访问,加了非标端口,流量走的是哪个端口?
原创
ralap
ralap
网络个人修炼
2026年10月21日 10:36
陕西
去阅读
刚入行时看到这个问题,当时也是愣了几秒,HTTPS 默认是 443,域名又显式加了非标端口,那流量到底走 443 还是非标端口?答案是非标端口。HTTPS 只负责加密、完整性校验和身份认证;端口则是传输层的事,由 URL 显式指定。证书绑定的是域名,与端口无关,所以非标端口跑 HTTPS 完全可行。
提到 Nginx 的 HTTPS 反向代理,网上绝大多数示例默认使用 443 标准端口。但在很多实际部署场景中,我们会选用其他端口对外提供 HTTPS 服务。本文介绍 Nginx 使用自定义端口搭建 HTTPS 反向代理。
前期准备
- 将域名 DNS 解析到 Nginx 服务器对应的公网 IP。
- 申请对应域名的 SSL 证书,例如阿里云免费证书。在官网数字证书管理服务中购买免费版后,申请证书并填写域名信息提交申请,等待证书签发,20 分钟内完成。签发完成后,下载 Nginx 版本的.pem 和 .key 文件。
- 确保服务器防火墙已放行自定义 SSL 端口,例如
7000/TCP。
Nginx 配置
在 Nginx 目录下新建 ssl 文件夹,把下载好的证书文件放入该目录。
编写 server 块,配置监听端口与证书路径:
server { # 自定义非标SSL端口 listen 7000 ssl; server_name a.test.com; # SSL证书配置,建议使用相对路径 ssl_certificate ssl/a.test.com.pem; ssl_certificate_key ssl/a.test.com.key; location / { # 后端内网HTTP服务地址 proxy_pass http://192.168.1.1:8080; proxy_set_header Host $host; # 覆盖默认 Host(默认是后端 IP),避免后端拼出内网 IP proxy_set_header X-Real-IP $remote_addr; # 传递客户端真实 IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#追加代理链路 IP proxy_set_header X-Forwarded-Proto $scheme; #告诉后端客户端到 Nginx 这一层用的是 HTTPS proxy_set_header X-Forwarded-Port $server_port; # 传递 Nginx 对外接收端口 }}
配置校验与重载命令
# 校验配置语法是否存在错误,建议每次修改后必执行nginx -t# 配置校验通过后,平滑重载,不中断现有业务nginx -s reload
重载成功后,通过 https://a.test.com:7000 访问验证即可
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论