负载均衡器-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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...