脚本之家

电脑版
提示:原网页已由神马搜索转码, 内容由www.jb51.net提供.
您的位置:首页网站技巧服务器nginx→ nginx sticky基于cookie的会话保持

nginx使用sticky基于cookie的会话保持方式

  更新时间:2023年12月25日 17:06:15  作者:endzhi 
这篇文章主要介绍了nginx使用sticky基于cookie的会话保持方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

nginx使用sticky基于cookie的会话保持

在nginx做负载均衡下,为了确保一个客户只和一台后端服务器通信达到会话保持作用,如使用nginx自带ip_hash,但有很大的缺陷,基于客户端在集中的一个NAT出口IP,如一个大公司网络下多人来访,结果就会分配请求集中于某一后端的服务器,负载就不均匀了。

nginx-sticky-module这个第三方模块用于添加一个粘性cookie,该粘性cookie始终转发到同一上游服务器。

使用cookie跟踪上游服务器使每个浏览器都是唯一的,当处理多个后端服务器时,一个客户端(浏览器)总是由同一台后端服务器提供服务(例如用于会话持久性)有时很有用。

当然浏览器不支持Cookie时,粘性模块也无法应用。

安装部署

在现有的nginx加装,从源代码重新编译Nginx来获得该模块

wget  https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz
tar -zxvf master.tar.gz
mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42 nginx-sticky

先检测nginx已安装的模块

/usr/local/nginx/sbin/nginx  -V

再次进入nginx的安装包位置

cd nginx-1.17.3

按以上结果,加装nginx-sticky进去

./configure --prefix=/usr/local/nginx --add-module=/root/nginx-sticky/  --with-http_stub_status_module --with-http_ssl_module --with-pcre

make (不要make install 这就覆盖了)

备份先

 cp /usr/local/nginx/sbin/nginx  /usr/local/nginx/sbin/nginx.old
cp ./objs/nginx /usr/local/nginx/sbin/nginx

安装完毕,检测已安装模块

/usr/local/nginx/sbin/nginx  -V

配置nginx sticky

nginx 的upstream使用sticky,如下

upstream backend {
sticky;
server 192.168.100.209:80;
server 192.168.100.225:80;
}

即可开启了sticky功能使用,已经满足一般业务需求,也可以与nginx_http_upstream_check_module一起使用,在这就不详细说明了。

如需其他用法,参考。

sticky [name=route] [domain=.foo.bar] [path=/] [expires=1h] [hash=index|md5|sha1] [no_fallback] [secure] [httponly];
  • name: 可以为任何的string字符,默认是route
  • domain:哪些域名下可以使用这个cookie
  • path:指定路径启用sticky,默认路径/,例如path/test,只有test目录才会使用sticky做负载均衡。
  • expires:cookie过期时间,默认浏览器关闭就过期,也就是会话方式 用发sticky expires=60s;
  • no_fallback:如请求包含cookie且相应后端不可用,nginx将返回502(错误网关或代理错误)。
  • secure:安全启用安全Cookie,仅通过https转移。
  • httponly:启用cookie不会通过js泄漏。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Nginx服务器中强制使用缓存的配置及缓存优先级的讲解

    Nginx服务器中强制使用缓存的配置及缓存优先级的讲解

    这篇文章主要介绍了Nginx服务器中强制使用缓存的配置及缓存优先级的讲解,一定程度上可以帮助大家解决Nginx不缓存或缓存失效的问题,需要的朋友可以参考下
    2016-01-01
  • Nginx配置缺少导致CSS不起作用的问题解决

    Nginx配置缺少导致CSS不起作用的问题解决

    本文将分享一个常见的问题Nginx配置缺少导致的CSS不起作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • centos系统下LNMP环境一键安装

    centos系统下LNMP环境一键安装

    centos下的LNMP环境一键安装实现方法,需要的朋友可以参考下。
    2010-06-06
  • Nginx CertBot配置HTTPS泛域名证书Debian及常见问题

    Nginx CertBot配置HTTPS泛域名证书Debian及常见问题

    这篇文章主要介绍了Nginx CertBot配置HTTPS泛域名证书Debian及常见问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • nginx中的listen指令实例解析

    nginx中的listen指令实例解析

    这篇文章主要给大家介绍了关于nginx中listen指令解析的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • 基于Nginx禁止指定IP、国外IP访问我的网站

    基于Nginx禁止指定IP、国外IP访问我的网站

    这篇文章主要介绍了用Nginx禁止指定IP、国外IP访问我的网站,想要实现这个功能方法有很多种,这里基于 Nginx 的 ngx_http_geoip2 模块来禁止国外 IP 访问网站,需要的朋友可以参考下
    2022-05-05
  • 使用Nginx让网站快速置灰的方法

    使用Nginx让网站快速置灰的方法

    这篇文章主要介绍了使用Nginx让网站快速置灰的方法,首先是查看当前编译的版本是否支持http_sub_module模块,如果不支持需要重新编译增加此模块,具体配置方法参考下本文
    2023-11-11
  • 使用nginx+tomcat+keepalived实现高可用的详细步骤

    使用nginx+tomcat+keepalived实现高可用的详细步骤

    这篇文章主要介绍了nginx+tomcat+keepalived实现高可用,包括安装nginx服务的步骤,详细介绍了安装keepalived的方法,对nginx+tomcat+keepalived高可用相关知识感兴趣的朋友一起看看吧
    2022-03-03
  • 详解nginx请求头数据读取流程

    详解nginx请求头数据读取流程

    这篇文章主要介绍了详解nginx请求头数据读取流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • nginx反向代理如何支持网址自动添加斜线

    nginx反向代理如何支持网址自动添加斜线

    这篇文章主要介绍了nginx反向代理如何支持网址自动添加斜线问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05

最新评论