有没有一个 apache 设置可以让我杀死运行时间超过 90 秒的进程?我遭受了 DDOS 攻击,并且几乎耗尽了内存,因为一堆 apache 进程运行了很长时间。
答案1
请求超时
看一下 Apache 模块mod_reqtimeout
,它使用的配置设置是RequestReadTimeout
。
例子:允许 5 秒完成 TLS 握手,10 秒接收请求标头,30 秒接收请求正文:
RequestReadTimeout handshake=5 header=10 body=30
要启用该模块,请运行以下命令:
sudo a2enmod reqtimeout # enable mod_reqtimeout
sudo service apache2 restart # Re-start Apache
欲了解更多详情,请咨询Apache 2.4 mod_reqtimeout
响应超时
在响应方面,如果 DDOS 攻击导致了漫长的 PHP 处理,请查看max_execution_time
PHP 设置,该设置通常在 php.ini 中设置。
ApacheTimeOut
设置用于网络 I/O 超时。它限制 Apache 等待来自客户端的 TCP 数据包的时间,以及 Apache 等待 TCP 数据包发送到客户端时确认的时间。