Nginx 中怎么通过 nginx.conf 配置集群环境下的会话保持

小萱小哥_6929

小萱小哥_6929

2026-08-24

922人浏览

原创

nginx集群会话保持有四种方式:①ip_hash绑定客户端ip,适用于内网固定ip;②cookie哈希(hash $cookie_jsessionid consistent)实现软粘性,抗nat;③sticky cookie自动注入路由标识,需编译第三方模块;④配合redis实现分布式session,推荐中大型业务。

nginx 中怎么通过 nginx.conf 配置集群环境下的会话保持

在 Nginx 集群中实现会话保持,核心是让同一用户请求持续落到同一台后端服务器,或确保各后端能读写同一份会话数据。配置方式取决于你的网络环境、后端能力与运维条件,不能只套用一种写法。

用 ip_hash 绑定客户端 IP(适合内网固定 IP 场景)

这是最轻量、无需额外模块的原生方案,适用于企业内网、测试环境等客户端 IP 稳定的场景:

  • 在 upstream 块第一行直接写 ip_hash;,不能缩进,也不能和其它 hash 指令共存
  • upstream 至少定义两台后端 server,且不能带 weight、backup、down 等参数,否则 Nginx 启动失败
  • IPv4 默认只取前 3 段哈希(如 192.168.1.10 和 192.168.1.20 视为同一 IP),NAT 环境下易导致单台过载
  • 若前端有 CDN、WAF 或代理,需启用 real_ip_module 还原真实 IP:
      – 在 http 块中声明可信段:set_real_ip_from 10.0.0.0/8;
      – 在 location 中透传:proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

用 cookie 哈希实现软粘性(免编译、抗 NAT)

当用户来自公网、手机频繁切换网络或存在多层代理时,推荐用已有的业务 Cookie(如 JSESSIONID)做一致性哈希:

Nginx Config Linter
Nginx Config Linter

对 Nginx 配置文件进行语法检查、验证和安全、性能审计。

下载
  • 配置示例:hash $cookie_JSESSIONID consistent;(放在 upstream 内)
  • 首次请求无该 Cookie 时走轮询;后续带 Cookie 的请求才被哈希绑定,天然支持会话建立过程
  • 要求后端应用正常生成并返回标准会话 Cookie(如 Tomcat 默认的 JSESSIONID)
  • consistent 参数可减少后端增减节点时的会话漂移,比普通 hash 更稳定

用 sticky cookie 自动注入路由标识(无需后端改造)

若无法修改后端代码,又希望强会话绑定,可使用 nginx-sticky-module-ng 模块:

  • 配置示例:sticky cookie srv_id expires=1h domain=.example.com path=/;
  • 模块会在首次响应中自动 set-cookie,值为内部计算的唯一路由 ID;后续请求自动识别并转发
  • domain 和 path 必须与业务域名匹配,否则浏览器不携带该 cookie
  • 需提前编译安装该第三方模块,主流云主机平台(如新网云)已预集成

配合 Redis 实现真正分布式 Session(推荐中大型业务)

Nginx 本身不管理 session,但可作为反向代理配合后端统一存储:

  • PHP:配置 session.save_handler = redis,指定 redis host/port
  • Java(Spring Boot):引入 spring-session-data-redis,自动接管 HttpSession
  • Node.js:用 express-session + connect-redis 中间件
  • Nginx upstream 可回归轮询或 least_conn,不再依赖粘性策略,扩容缩容无感知

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

nginx nginx负载均衡

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

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

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

2023.08.15

417

5

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

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

2023.09.08

860

5

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

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

2023.09.19

2552

5

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

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

2023.10.09

856

5

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

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

2023.10.17

769

5

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

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

2023.10.17

394

3

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

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

2023.10.18

2316

4

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

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

2023.10.20

4252

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

687

5

热门下载

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

精品课程

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

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习