如何解决负载均衡器-Redis会话持久性问题
在使用负载均衡器和Redis(全部通过Laravel Forge配置)时,会话数据无法持久存储的问题。
设置如下:
- 2台应用服务器
- 1个负载均衡器
- 1个redis缓存和会话服务器
- 1个mysql服务器
目前,我已将负载均衡器设置为执行“轮询”。但是,在每次刷新页面时,当交换到另一台服务器时,该会话都不会持续存在,因此它正在搞砸我的应用程序。我需要会话来保持服务器交换上的状态。
我正在使用远程Redis服务器,据我所知,我在两个应用程序服务器上都正确设置了所有.env变量。
如果我在Redis服务器上运行Redis-cli keys *
,则可以在其中看到_cache文件,并且每次刷新页面都会生成一个新的_cache文件(对吗?)。
我尝试将负载均衡器IP添加到TrustedProxies的代理部分,但这没有任何作用。
这是我在两个应用程序服务器上重复的环境设置:
CACHE_DRIVER=redis
SESSION_DRIVER=redis
SESSION_LIFETIME=120
SESSION_CONNECTION=session
SESSION_DOMAIN=".example.com"
REDIS_CLIENT=predis
REDIS_HOST=111.111.111.111
REDIS_PASSWORD=""
REDIS_PORT=6379
这是我运行Redis-cli monitor
并刷新页面的结果:
1599056082.682611 [0 server_1_ip:50908] "SELECT" "2"
1599056082.683462 [2 server_1_ip:50908] "GET" "app_database_app_cache:quAGJdsQU7WTIaT2eTxuINd4WSiZuAzoWDOpBLJM"
1599056082.715191 [2 server_1_ip:50908] "SETEX" "app_database_app_cache:quAGJdsQU7WTIaT2eTxuINd4WSiZuAzoWDOpBLJM" "7200" "s:262:\"a:4:{s:6:\"_token\";s:40:\"YeRd8AXCIEEZmQCz0pgqZDbAV5vbxntmS82UKlOj\";s:4:\"scid\";s:8:\"8EBDE181\";s:9:\"_previous\";a:1:{s:3:\"url\";s:78:\"https://example.com/flights/IOM/MAN?adults=1&children=0&from=2021-05-28&infants=0\";}s:6:\"_flash\";a:2:{s:3:\"old\";a:0:{}s:3:\"new\";a:0:{}}}\";"
1599056087.170996 [0 server_1_ip:50912] "SELECT" "1"
1599056087.171601 [1 server_1_ip:50912] "GET" "app_database_app_cache:illuminate:queue:restart"
1599056090.383494 [0 server_2_ip:42704] "SELECT" "1"
1599056090.384076 [1 server_2_ip:42704] "GET" "app_database_app_cache:illuminate:queue:restart"
1599056132.064383 [2 server_2_ip:42724] "GET" "app_database_app_cache:9bn5os6I5F2ZgrAlqfKCdwjazIsJDg58miOrfh95"
1599056132.103368 [2 server_2_ip:42724] "SETEX" "app_database_app_cache:9bn5os6I5F2ZgrAlqfKCdwjazIsJDg58miOrfh95" "7200" "s:262:\"a:4:{s:6:\"_token\";s:40:\"rzUlr5McKbxNcyOeWu23lryc6AJ3I4YWXARF4lXo\";s:4:\"scid\";s:8:\"DC36F293\";s:9:\"_previous\";a:1:{s:3:\"url\";s:78:\"https://example.com/flights/IOM/MAN?adults=1&children=0&from=2021-05-28&infants=0\";}s:6:\"_flash\";a:2:{s:3:\"old\";a:0:{}s:3:\"new\";a:0:{}}}\";"
我还能看什么吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。