老师,nginx怎么实现会话(session)保持,和http强转成https
来源:4-1 Nginx动静分离_动静分离场景演示(1)
qq_小犀牛_0
2018-03-27
老师,nginx怎么实现会话(session)保持,和http强转成https
5回答
-
Jeson
2018-03-28
如果采用Nginx+Tomcat,想过Tomcat实现session复制的话,看看这个例子:https://www.jianshu.com/p/023d74819249
00 -
qq_小犀牛_0
提问者
2018-03-27
Nginx+Tomcat+Memcached实现会话实现,我找下了,没有弄成功,tomcat启动了Memcachedy一个value值都没有
00 -
qq_小犀牛_0
提问者
2018-03-27
例如:通过nginx做集群,我通过http:/ip:端口/XX ,我登陆进去了。刚好我登陆那台服务器挂了,应该要设置会话共享才不会让用户重新登陆吧
00 -
qq_小犀牛_0
提问者
2018-03-27
nginx 会话共享,能给个列子吗
022018-03-27 -
Jeson
2018-03-27
这是两个问题,两个问题都是好问题。
1、Nginx如何实现会话session保持
首先,Nginx 在什么时候需要进行session会话保持,当然是进行负载均衡的时候,需要将请求分发到后端不同的节点中,由于Nginx默认采用的是基于$binary_remote_addr的方式进行轮询,这样就使得在某些情况下,用户的同一个会话,请求多次后,到了后台的不同后端节点上了。
这个时候,如果在Nginx上作文章,就需要通过修改Nginx的hash方式了,也就是不实用基于ip轮询方式。当然,总的来说可以作的方式有:
(1)Nginx提取通过正则及定义变量的方式提取用户端请求中的cookie信息,然后对这个自定义变量作为hash key进行负载均衡策略。
(2)后端节点的服务,自己进行session 同步,如tomcat就可以配置session信息的同步
2、http强转为https
这个问题,我的理解是这样的,请求情况如下:
用户--->http--->nginx --->https---->后端节点
这个时候,需要对nginx作为客户端 upsteam模块配置https客户端证书,这是配置的自签方式,如下:
location /upstream {
... proxy_ssl_trusted_certificate /etc/nginx/trusted_ca_cert.crt;
proxy_ssl_verify on;
proxy_ssl_verify_depth 2;
...
}
还有另外一种这个问题理解,请求情况如下:
用户请求地址为:http://www.imoocc.com将url进行rewrite为https://www.imoocc.com
00
相似问题