Laravel Sessions 数据库表填充了 user_agent ELB-HealthChecker/2.0 健康检查

ger*_*ion 7 mysql session user-agent amazon-ec2 laravel

我正在准备我的 Laravel 5.5 生产环境以在弹性负载均衡器 (ELB) 后面的多个 AWS EC2 实例上运行。所有共享数据,如图像、css、js 都存储在 S3 上,日志流式传输到 CloudWatch,数据库在 RDS 上。会话和缓存已配置为使用数据库。

一切都很好,除了我看到会话表用 user_agent "ELB-HealthChecker/2.0" 填满了数千个 ELB 健康检查。Laravel/PHP 显然将每个健康检查视为一个新用户并生成一个新会话,每个实例每 30 秒一个。这可能会很快失控,并且不可持续。

所以我的问题是...... Laravel 中是否有一种方法可以忽略或拒绝来自特定 user_agents 的请求,以便他们不启动会话?我可以编写一个 shell 脚本来定期删除记录,但这似乎是不必要的黑客攻击。

Par*_*ras 5

我认为最简单的解决方案是将 ELB 定向到特定路由进行运行状况检查 ping,然后禁用该路由的会话中间件,如此处所述