Nginx Session Sticky

nginx的粘性session主要通过nginx-sticky-module实现

1 下载 nginx-sticky-module

下载地址:https://code.google.com/p/nginx-sticky-module/downloads/list

官方文档:https://code.google.com/p/nginx-sticky-module/wiki/Documentation

2 安装

解压nginx-sticky-module到/usr/local

tar -xzf nginx-sticky-module-1.1.tar.gz

进入 nginx 源码目录/usr/local/nginx-1.6.2,执行命令,重新编译:

./configure ... --add-module=../nginx-sticky-module-1.1
make
make install

3 make报错

make的时候可能由于高版本的原因会出现以下错误:

1
2
3
make[1]: *** [objs/addon/nginx-sticky-module-1.1/ngx_http_sticky_misc.o] Error 1
make[1]: Leaving directory `/usr/local/nginx-1.6.2'
make: *** [build] Error 2

解决方法:

nginx-sticky-module-1.1/ngx_http_sticky_misc.c的281行修改为:

digest->len = ngx_sock_ntop(in,sizeof(struct sockaddr_in), digest->data, len, 1);

4 sticky使用

upstream 172.16.0.16 {
        sticky;
        server 172.16.0.17:8180;
        server 172.16.0.17:8280;
        server 172.16.0.18:8180;
        server 172.16.0.18:8280;
    }

sticky支持的参数:sticky [name=route] [domain=.foo.bar] [path=/] [expires=1h] [hash=index|md5|sha1] [no_fallback];

1
2
3
4
5
name: 可以为任何的string字符,默认是route
domain:哪些域名下可以使用这个cookie
path:哪些路径对启用sticky,例如path/test,那么只有test这个目录才会使用sticky做负载均衡
expires:cookie过期时间,默认浏览器关闭就过期,也就是会话方式。
no_fallbackup:如果设置了这个,cookie对应的服务器宕机了,那么将会返回502(bad gateway 或者 proxy error),建议不启用。

如下:

sticky name=routeID expires=1h domain=.test.com path=/;

 

posted @   Jager  阅读(2196)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示