论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
主机系统
›
linux
›
nginx配置在一个端口下,同时支持http与https两种协议 ...
nginx配置在一个端口下,同时支持http与https两种协议
九天猎人
金牌会员
|
2025-3-17 15:50:51
|
显示全部楼层
|
阅读模式
楼主
主题
980
|
帖子
980
|
积分
2940
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
Nginx
不支持
在
同一个端口
同时提供 HTTP 和 HTTPS 服务,缘故原由如下:
HTTP
和
HTTPS
利用的是差别的协议,HTTPS 需要
TLS 握手
,而 HTTP 不需要。
Nginx
无法在同一个端口上自动区分 HTTP 和 HTTPS
。
解决方案
虽然 Nginx 自己不支持 HTTP 和 HTTPS 共享同一端口,但你可以利用
SSL 预读(SSL Preread)
技能,通过 Nginx 的 stream 模块在
同一端口
上区分 HTTP 和 HTTPS 流量。
配置方式:利用 stream 模块监听 443 端口并区分 HTTP/HTTPS
# 在 http 之外的全局配置中
stream {
map $ssl_preread_protocol $name {
"" http_backend; # 没有 TLS 的是 HTTP
default https_backend; # 有 TLS 的是 HTTPS
}
upstream http_backend {
server 127.0.0.1:8080; # HTTP 服务器
}
upstream https_backend {
server 127.0.0.1:8443; # HTTPS 服务器
}
server {
listen 443;
proxy_pass $name;
ssl_preread on;
}
}
http {
server {
listen 8080;
server_name yourdomain.com;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
server {
listen 8443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
}
复制代码
工作原理
stream 监听 443 端口
利用 ssl_preread 读取数据流,判断是否是 HTTPS(即是否有 TLS 握手)。
假如是
HTTP
,转发到 http_backend(127.0.0.1:8080)。
假如是
HTTPS
,转发到 https_backend(127.0.0.1:8443)。
http {} 配置 HTTP 和 HTTPS
server 监听 8080 端口处理 HTTP。
server 监听 8443 端口处理 HTTPS。
最终结果
访问 http://yourdomain.com:443:会自动转发到 8080 端口的 HTTP 服务器。
访问 https://yourdomain.com:443:会自动转发到 8443 端口的 HTTPS 服务器。
这样,你就能在
一个端口(443)
上同时支持 HTTP 和 HTTPS 访问!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
九天猎人
金牌会员
这个人很懒什么都没写!
楼主热帖
C# 使用流读取大型TXT文本文件 ...
从洞察到决策,一文解读标签画像体系建 ...
袋鼠云平台代码规范化编译部署的提效性 ...
Flink的API分层、架构与组件原理、并行 ...
打穿你的内网之三层内网渗透 ...
SpringBoot(八) - 统一数据返回,统一 ...
Redis命令手册
JVM
微服务(三)之负载均衡(服务端和客户端) ...
MVCC - Read View的可见性判断理解 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
分布式数据库
运维.售后
开源技术
快速回复
返回顶部
返回列表