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

浏览 3.7k

客户端在访问某一个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
粉丝
相关问答

导致502的一个常见原因,是三次握手建立失败了,你可以用netstat统计下,是否存在报文丢失等情况,如果是的话,报502就是正常的,此时你可以通过Nginx的next upstream机制,在Nginx层通过重新转发请求把502错误化解掉。

点赞 0
浏览 8.4k

https://github.com/digitalocean/nginxconfig.io  这有个点击选择生成 Nginx 配置文件模板的项目,不过功能性比较局限,可以基于这个二次开发。这个项目相比 1.0 已经很不错了

点赞 0
浏览 6.4k

1.19.1应该是支持ipv6的。需要编译的时候添加--with-ipv6 声明对ipv6的支持。具体可以参考下面的文章。

https://blog.csdn.net/shenxianfeng/article/details/72859830


点赞 0
浏览 6.8k