第六章-session一致性的会话保持功能:使用cookie来保存会话

本文介绍了一种通过Nginx实现会话保持的方法,避免了使用额外缓存服务器来共享session的需求,降低了系统复杂度。适用于低并发场景,如单用户登录访问的情况。通过配置会话保持模块,可以确保来自同一用户的请求被定向到相同的后端服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分布式服务器是为了解决高并发而存在,但是却会出现session一致性的问题,之前的方案主要是通过缓存数据库来共享session,而这种方式的效率却并不高,因为存在一个中间过程问题。但是在某些情况下,由于服务器宕机的可能性很低,或者说并不需要高并发的情况下,并不需要通过多余的缓存数据服务器来共享session。比如,一个用户通过浏览器登录淘宝网,其实对于一个用户而言,一个浏览器的访问数量很少,完全不必要使用多个服务器来服务。所以,对于单个指定用户,可以直接记录这个用户的第一个服务器id,之后nginx总是将此用户的请求发个同一个服务器,而不需要另外的redis缓存数据服务器。

  • nginx配置
会话保持模块配置
–#insert + indirect模式:
–upstream test {
–session_stickycookie=uiddomain=www.xxx.comfallback=on path=/ mode=insert option=indirect;
–server 127.0.0.1:8080;
–}
–Server
–{
–location / {
–#在insert + indirect模式或者prefix模式下需要配置session_sticky_hide_cookie
–#这种模式不会将保持会话使用的cookie传给后端服务,让保持会话的cookie对后端透明
–session_sticky_hide_cookieupstream=test;
–proxy_passhttp://test;
–}
–}

配置图

  • 重启nginx:service nginx reload
  • 效果:页面将不发生变化
    第一次访问
    刷新后不变化

  • vim跳转指定行

    • :$ 跳转到最后一行
    • :1 跳转到第一行
  • xshell卡死时:Ctrl+Q

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值