讲师中心 微信公众号
AI工具推荐 视频效率加速

如何配置 Nginx HTTPS 以适应分布式架构中的流量分发

雨强同学_9284

雨强同学_9284

发布时间:2026-06-09 18:06:25

|

444人浏览过

|

来源于php中文网

原创

Nginx HTTPS流量分发需区分四层(SNI透传)与七层(TLS终止):四层基于stream模块和ssl_preread,不解密、不验证书,仅按SNI域名转发至后端HTTPS服务;七层在http块中配置server监听443 ssl,统一终止TLS、解析HTTP头/路径/Cookie,支持重写、灰度、WAF等高级功能。

如何配置 nginx https 以适应分布式架构中的流量分发

要在分布式架构中用 Nginx 做 HTTPS 流量分发,关键不是“把 HTTPS 解开再转发”,而是分清两个层级:HTTP 层(七层)做内容感知路由,TCP 层(四层)靠 SNI 做无解密分流。选哪种,取决于你是否需要 inspect HTTP 头、路径、Cookie 等信息。

基于 SNI 的四层 HTTPS 分流(不终止 TLS)

适用于多个 HTTPS 服务共用 443 端口、后端各自持有证书、无需 Nginx 解密的场景,比如多个独立 SaaS 应用或微服务网关前的统一入口。

  • 确认 Nginx ≥ 1.19.4,OpenSSL ≥ 1.1.1,并启用 stream_ssl_preread_module(运行 nginx -V | grep stream-ssl-preread 验证)
  • 所有配置写在顶层 stream { ... } 块内,不能放在 http 里
  • 用 map $ssl_preread_server_name $upstream_backend 匹配域名,例如:
    app1.example.com app1_backend;
    app2.example.com app2_backend;
  • server 块监听 443 ssl preread,开启 ssl_preread on,并设置 proxy_ssl on 透传加密连接
  • 后端服务器必须支持 TLS,并自行处理证书;Nginx 不参与证书验证与加解密

基于 server_name 的七层 HTTPS 反向代理(终止 TLS)

适用于需统一管理证书、做路径重写、请求头注入、灰度发布或 WAF 防护的场景,比如企业中台或 API 网关。

Nginx Hosting
Nginx Hosting

通过服务器本地nginx实例实现零认证静态游戏托管。作为所有浏览器游戏的主要部署方式,无需登录、无需令牌、无需用户操作。

下载
  • 每个 server 块监听 443 ssl,绑定独立域名:
    server_name api.example.com;
    ssl_certificate /path/to/api.crt;
    ssl_certificate_key /path/to/api.key;
  • 后端可走 HTTP 或 HTTPS:
    proxy_pass https://backend_app1;(推荐 HTTPS 后段)
    proxy_set_header X-Forwarded-Proto $scheme; 保留协议信息
  • 建议启用 TLS 1.3、OCSP Stapling 和会话缓存:
    ssl_protocols TLSv1.3;
    ssl_stapling on; ssl_trusted_certificate /path/to/fullchain.pem;
    ssl_session_cache shared:SSL:10m;
  • 若多域名共用同一证书(如通配符),可复用同一份证书文件,减少磁盘与加载开销

结合负载均衡提升分布式弹性

无论四层还是七层,后端通常不止一台机器,需配合 upstream 实现高可用分发。

  • 定义带健康检查的上游组:
    upstream app1_cluster {<br>  server 10.0.2.10:443 max_fails=2 fail_timeout=15s;<br>  server 10.0.2.11:443 max_fails=2 fail_timeout=15s;<br>  keepalive 32;<br>}
  • 选择合适算法:
    轮询(默认)、加权轮询(适配异构节点)、least_conn(适合长连接)、ip_hash(需会话保持)
  • 对 HTTPS 后端,加上 proxy_ssl_* 参数确保 TLS 连接安全透传:
    proxy_ssl_verify off;(若后端证书为自签或内网 CA)
    proxy_ssl_trusted_certificate /etc/nginx/ssl/internal-ca.pem;
  • 避免 SSL 握手成为瓶颈:启用 ssl_session_reuse 和合理设置 ssl_buffer_size

自动化与运维友好实践

在动态扩缩容的分布式环境中,静态配置易失效,需增强可维护性。

  • 用 Certbot + Nginx 插件实现 Let’s Encrypt 证书自动申请与续期,配合 location /.well-known/acme-challenge 透传验证请求
  • 将各域名配置拆分为独立文件,放入 /etc/nginx/conf.d/sites-enabled/ 并 include,便于 CI/CD 管理
  • 对灰度流量,用 split_clients 或 map + 请求头/参数做条件路由,例如:
    map $arg_version $backend { "" default; "v2" v2_backend; }
  • 添加基础防护:用 limit_req 控制突发流量,配合 geo 模块限制高风险区域请求频次

热门AI工具

更多
咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

457

2023.08.15

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

920

2023.09.08

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2932

2023.09.19

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

976

2023.10.09

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

869

2023.10.17

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

454

2023.10.17

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2656

2023.10.18

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

4972

2023.10.20

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

0

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn