自动终止长时间运行的 Apache 进程

自动终止长时间运行的 Apache 进程

有没有一个 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_timePHP 设置,该设置通常在 php.ini 中设置。

ApacheTimeOut设置用于网络 I/O 超时。它限制 Apache 等待来自客户端的 TCP 数据包的时间,以及 Apache 等待 TCP 数据包发送到客户端时确认的时间。

相关内容