![Apache2 一段时间后不再提供响应,我需要重新启动它](https://linux22.com/image/573972/Apache2%20%E4%B8%80%E6%AE%B5%E6%97%B6%E9%97%B4%E5%90%8E%E4%B8%8D%E5%86%8D%E6%8F%90%E4%BE%9B%E5%93%8D%E5%BA%94%EF%BC%8C%E6%88%91%E9%9C%80%E8%A6%81%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%E5%AE%83.png)
我不知道发生了什么,但有时(最近几天经常发生)如果我尝试打开我的网站(托管在我的专用服务器上)
网站显示时间太长。那么恢复它的唯一解决方案是使用经典的 Debian 命令重新启动 Apache:
/etc/init.d/apache2 restart
之后,当我在浏览器中打开我的网站时,它就会立即显示出来。
我有Debian 64 位和4GB 内存和一个酷睿 2 双核 @ 2.33 GHz
Apache 2 设置如下:
Timeout 10
KeepAlive Off
<IfModule mpm_prefork_module>
StartServers 90
MinSpareServers 5
MaxSpareServers 20
ServerLimit 90
MaxClients 90
MaxRequestsPerChild 0
</IfModule>
Error.log 除了"[error] favicon.ico not found"
重启后的top
命令是:
top - 17:53:43 up 129 days, 6:06, 1 user, load average: 0.18, 0.16, 0.18
Tasks: 207 total, 1 running, 206 sleeping, 0 stopped, 0 zombie
Cpu(s): 12.4%us, 2.1%sy, 0.0%ni, 80.4%id, 4.0%wa, 0.0%hi, 1.2%si, 0.0%st
Mem: 4040068k total, 3851432k used, 188636k free, 2037056k buffers
Swap: 1051384k total, 1332k used, 1050052k free, 772836k cached
请帮助我。(请不要要求我安装 mod_status)
我看到/var/log/messages
并发现了很多这样的消息,也许是这次is a DDOS
攻击?
Jan 29 18:31:31 ns354729 kernel: possible SYN flooding on port 80. Sending cookies.
答案1
设置一个自动脚本,定期请求页面并检查结果是否有效。将其与设置工具(如 atsar、进程记帐和其他可以捕获系统状态并记录下来的工具)相结合。一旦您有了准确的故障时间,请尝试将其与您记录的所有内容进行协调。
作为临时措施,您可能还想设置 monit 来监视、通知您并在发生故障时自动重新启动 apache。
答案2
我要尝试做的第一件事就是添加此行/etc/sysctl.conf
并重新启动盒子(只是为了确保它生效):
net.ipv4.tcp_max_syn_backlog = 4096
如果 SYN 洪水消息没有停止,请尝试进一步增加此值。