回答
收藏
分享
举报
反向代理session和cookie问题
提问于2020-09-19 19:31

浏览 822

客户端在访问某一个server时,服务端生成并且保存了session,并且发送给客户端cookie.如果下次访问时,client携带了cookie但是请求别反向代理到一个新的服务器,新的服务通过cookie找不到对应的session信息,那么会发生什么?怎么样保证,session信息在不同的上游服务器之间可以通用?


已修改于2023-03-16 02:11



写下您的回答
发表回答
全部回答(2)

按点赞数排序

按时间排序

1、找不到,就会要求用户重新登陆,这由页面逻辑而定;

2、不同的上游服务都从同1个redis等中心化服务上存取session,就可以通用;

3、用http_cookie_变量取出cookie的值,再基于它进行哈希路由也是一个解决办法(Tengine上的session sticky是做这个的,但不支持开源Nginx;OpenResty上的upstream_list也有同样的效果,支持官方Nginx;其实官方Nginx的map模块也能实现同样的效果)

赞同

2

回复举报

回答于2020-09-20 09:19



回复陶辉
回复

谢谢陶辉老师

赞同

0

回复举报

回答于2020-09-20 18:45



回复Jikui
回复
提问者
Jikui
这家伙很懒还未留下介绍~
10
文章
2
问答
1
粉丝
相关问答

1、分组是基于16字节128比特位,这与传输是两回事。传输时,会将许多分组放在一起传输,这就是tls record size,openssl提供有设置的函数,而Nginx则将函数值通过ssl_record_size暴露在nginx.conf中,默认为16KB。

2、cloudflare中设置了lo初始tls record size,默认是1个MSS,当发完ssl_dyn_rec_threshold 个record后,将上升到ssl_dyn_rec_size_hi 默认为3个MSS,再发完ssl_dyn_rec_threshold 个record,最终上升到ssl_buffer_size即16KB。在这些过程中,如果连接空闲时间超过1秒,那么record将回复到ssl_dyn_rec_size_lo

点赞 0
浏览 1k

需要进一步提供配置等信息

点赞 0
浏览 619

proxy_intercept_errors on; error_page 里去掉 404. 另外注意proxy_intercept_errors, error_page范围,可以 写在server 里,如果写在location 里只对location 生效。

点赞 0
浏览 788