【发布时间】:2021-03-09 22:18:47
【问题描述】:
我遇到了一些 DDOS 攻击导致我的 PHP 服务器宕机的情况。偶尔。
我将 AWS 与 Auto Scaling 组一起使用,所以这不是问题。
当这个服务器在 cron 作业计划的 PHP 脚本的中间出现故障时,问题就开始了。
所以我的想法是阻止 PHP 服务器上的所有路由,除了 /healthcheck...
我该怎么做?有更好的解决方案吗?
【问题讨论】:
-
php脚本运行时如何保护php服务器不宕机?
-
作为一个选项,我建议您加载取决于 env 变量的路由,该变量在 cron 作业开始时为
true,在完成时为false。为了确保这个变量即使在 cron 脚本失败时也是false,我会用try/finally包装整个脚本。可以使用任何内存数据结构存储来代替 env 变量,例如redis/file甚至APC -
您在查询数据库吗?如果是,那么您的查询可能有问题。检查任何慢查询。看看您是否可以在与 where 子句一起使用的列中创建索引。以上几点的结合帮助我解决了类似的问题。
-
你有请求限制吗?您可以将
throttle:60,1之类的东西添加到您的路由中间件中,以在 1 分钟的窗口内将客户端限制为 60 个请求。
标签: php laravel amazon-web-services cron ddos