nginx sticky 提供session 保持

    nginx sticky工作,与route的原理

        nginx提供请求反向代理以及负载均衡,一个插件nginx sticky用于将用户的请求发到同一台服务器上,也就使得同一用户的一个浏览器登陆状态能与同一个服务器保持交互。

     在大中型企业中,一个应用会布置在好几个主机,比如,40.40.42.42-40.40.42.44,这三台主机上布置着同一个taobao.war的应用,每台主机有2个实例,为instance1,instance2。

     现在用户a通过浏览器,登陆到www.taobao.com/index.jsp,第一次登陆,用户上传一个空的cookie,nginx会将请求分配到三台主机中的一台,比如就是40.40.42.42上,42.42主机服务器处理http请求,服务器返回响应头以及响应内容,nginx生成有route的cookie,此route对应一个服务器,浏览器保存cookie,此时浏览器中拥有一个route,此route对应着42.42主机,之后的每次请求都会带上这个cookie,nginx在识别出cookie中带有的route之后,将此次请求带有此route的请求,会被nginx分配到42.42主机上去处理,这就可以使得session保持。

    关于在大型秒杀类活动中,出现提示重新登录的提示框。出现这种现象就是因为,你的session在服务器上失去响应,当出现大并发量的时候,服务器负载会出现临界值,出现宕机的时候就是session失去响应的时候。

    nginx sticky的工作机制就是依靠cookie实现负载均衡,一个浏览器中的route对应一个服务器。

原文链接

你可能感兴趣的:(nginx sticky 提供session 保持)