ip_hash:通过IP保持会话
作用:
nginx通过后端服务器地址将请求定向的转发到服务器上。 将客户端的IP地址通过哈希算法加密成一个数值
如果后端有多个服务器,第一次请求到服务器A, 并在务器登录成功,那么再登录B服务器就要重新登录,所以nginx的ip_hash可以保持会话(java是通过redis保存会话)
现象:
第一次通过nginx请求返回页面后,在次请求还是这个服务器的页面。
去掉ip_hash后,则默认使用rr轮询的方式请求
问题:
后端服务器宕机,存储的session就会消失,找不到上游服务器。
$request_uri;
通过url将请求转发到固定的服务器上
将url转成hash值,定向转发到后端服务器
$cookie_jsessionid;
$是指去nginx内部变量。
客户端登录系统,系统下发一个cookie文件,客户端保存在浏览器本地。
客户端请求时 将客户端访问携带的cookie取哈希值
注意:如果后端部署java或者tomcat,是不会下发jessionid的。当然我们也可以取其他值进行hash。
sticky第三方插件会话保持
nginx安装三方插件升级
1.上传解压插件包。
2.到nginx的conf目录下制定模块目录并安装。
./configure --prefix=/usr/local/nginx/ --add-module=/root/nginx-goodies-nginx-sticky-module-ng-x7...
make (注意不要make install,会直接覆盖掉之前的nginx执行文件)
3.将原来的nginx执行文件进行备份
上游服务器是静态服务器,存储静态文件没有下发cookie的功能。
sticky会下发一个有时间限制的cookie,客户端再次访问携带cookie,进行会话保持。
route的cookie是sticky下发的。文章来源:https://www.toymoban.com/news/detail-681580.html
文章来源地址https://www.toymoban.com/news/detail-681580.html
到了这里,关于nginx会话保持的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!