nginx-sticky怎么用 Nginx 负载均衡添加 sticky 模块完整步骤

简介: nginx-sticky模块可实现会话粘连,确保用户请求始终落在同一台后端服务器。需下载对应Nginx源码,安装编译工具,通过`--add-module`将插件编入Nginx,替换原执行文件,并在upstream中添加`sticky;`指令即可。重启服务并验证会话保持效果。

第一步:先搞懂这是啥

nginx-sticky是个能让用户每次访问都落到同一台后端服务器的插件(比如你有好几台Tomcat/Node服务器,用它就能让用户一直连其中一台)。解压后一般是 .c文件(比如 ngx_http_sticky_module.c)和说明文档。

第二步:准备环境(必须装这些!)

  1. 装Nginx源码:去 Nginx官网下和你现在用的Nginx版本一致的源码(别版本对不上,不然编译会炸),nginx-sticky安装包下载:https://pan.quark.cn/s/ed2504ebd68d

  2. 装依赖工具:编译需要 gccmakepcre-devel(正则支持)、zlib-devel(压缩支持),Linux直接敲:

    # CentOS/RHEL
    yum install gcc make pcre-devel zlib-devel -y
    # Ubuntu/Debian
    apt-get install gcc make libpcre3-dev zlib1g-dev -y
    

第三步:把插件编进Nginx里

假设你的Nginx安装在 /usr/local/nginx,源码放在 /opt/nginx-1.20.2,插件解压在 /opt/nginx-sticky

  1. 进Nginx源码目录

    cd /opt/nginx-1.20.2
    
  1. 配置编译参数(关键!)

    先看看你原来的Nginx编译了啥参数(记下来!):

    /usr/local/nginx/sbin/nginx -V  # 注意是大写V,会输出 --prefix=/usr/local/nginx ... 这些
    
然后复制这些参数,加上插件的路径,执行 `./configure`。比如原来参数是 `--prefix=/usr/local/nginx`,现在加插件的路径(假设插件 `.c`文件在 `/opt/nginx-sticky`):

```
./configure --prefix=/usr/local/nginx [你原来的其他参数] --add-module=/opt/nginx-sticky
```



(`[你原来的其他参数]`就是 `-V`输出的那些,比如 `--with-http_ssl_module`之类的,别漏!)
  1. 编译安装

    make  # 只编译,别make install!不然会覆盖原Nginx
    
编译完,把新生成的 `objs/nginx`替换原来的Nginx可执行文件(记得先停Nginx!):

```
# 停Nginx(如果开着的话)
/usr/local/nginx/sbin/nginx -s stop
# 备份原Nginx(以防翻车)
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
# 替换成新的
cp objs/nginx /usr/local/nginx/sbin/nginx
```

第四步:改Nginx配置文件

打开你的Nginx配置文件(一般在 /usr/local/nginx/conf/nginx.conf),在 upstream块里加 sticky;(就这么简单!)。

举个栗子:

http {
    upstream my_servers {  # 你的后端服务器组
        server 192.168.1.10:8080;
        server 192.168.1.11:8080;
        sticky;  # 加上这句,启用粘性会话
        # 可选参数:比如 sticky expires=1h domain=.example.com path=/;
        # expires 是cookie过期时间,domain/path 是cookie作用域
    }

    server {
        listen 80;
        location / {
            proxy_pass http://my_servers;  # 代理到上面的upstream
        }
    }
}

第五步:测试能不能用

  1. 检查配置有没有错

    /usr/local/nginx/sbin/nginx -t
    
显示 `ok`和 `successful`就没问题。
  1. 启动/重启Nginx

    /usr/local/nginx/sbin/nginx  # 启动
    # 或者重启:/usr/local/nginx/sbin/nginx -s reload
    
  1. 验证效果

    开两个浏览器(或清缓存),反复刷新页面,看是不是一直访问同一台后端服务器(可以看后端服务器的日志,比如Tomcat的 localhost_access_log,IP对应的请求是不是都落一台)。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
19天前
|
机器学习/深度学习 测试技术 数据中心
九坤量化开源IQuest-Coder-V1,代码大模型进入“流式”训练时代
2026年首日,九坤创始团队成立的至知创新研究院开源IQuest-Coder-V1系列代码大模型,涵盖7B至40B参数,支持128K上下文与GQA架构,提供Base、Instruct、Thinking及Loop版本。采用创新Code-Flow训练范式,模拟代码演化全过程,提升复杂任务推理能力,在SWE-Bench、LiveCodeBench等基准领先。全阶段checkpoint开放,支持本地部署与微调,助力研究与应用落地。
659 2
|
1月前
|
Java Windows
IDEA 插件 SpotBugs Idea 1.2.7.zip 使用详解(一步步教你排查Bug)
SpotBugs Idea 1.2.7.zip 是IntelliJ IDEA的Java静态分析插件,可检测空指针、资源泄漏等潜在问题。下载后通过Settings→Plugins→Install from Disk安装,重启IDEA即可使用。分析项目时右键选择“Analyze with SpotBugs”,结果按严重程度分级显示,支持跳转定位代码。兼容性佳,误报可忽略或注解屏蔽。
377 144
|
1月前
|
Linux 数据安全/隐私保护 Windows
CentOS-6.3-x86_64-minimal 安装教程详细步骤新手入门指南(附安装包)
准备2G以上U盘及ISO刻录工具,下载CentOS 6.3 minimal版镜像,使用Rufus或dd写入U盘。将U盘插入目标电脑,通过BIOS选择U盘启动,进入安装界面后按提示选择语言、键盘布局,自动分区并设置主机名、网络及时区,配置root密码后开始安装。安装完成后重启,拔出U盘,以root账号登录系统,即可使用命令行进行操作。
423 157
|
2月前
|
Java Windows
jdguiwindows.rar使用步骤 手把手教你打开看jar包(附安装包)
下载 `jdguiwindows.rar` 压缩包,解压后找到 `jd-gui.exe` 并运行。通过“文件→打开”载入 `.jar` 文件,即可浏览其内部代码结构,左侧为目录树,右侧显示源码,支持搜索,方便快捷查看Java反编译内容。(238字)
446 157
|
1月前
|
人工智能 自然语言处理 数据挖掘
阿里云百炼支持哪些AI大模型?文本生成、图像生成、语音合成及视频编辑等模型整理
阿里云百炼支持通义千问、通义万相等自研模型及DeepSeek、Kimi、Llama等第三方大模型,覆盖文本生成、图像生成、语音合成、视频生成、向量计算等多类AI能力,助力开发者高效构建应用。新用户可免费领取最高5000万Tokens。
853 156

热门文章

最新文章