我不知道它为什么会崩溃。但以下是我的一些错误日志:
[Thu Dec 29 03:23:45 2011] [error] [client 94.142.134.238] File does not exist: /var/www/phpMyAdmin
[Thu Dec 29 03:24:38 2011] [error] [client 96.240.84.138] File does not exist: /var/www/crossdomain.xml, referer: http://s.nsdsvc.com/App/DddWrapper.swf?c=4
[Thu Dec 29 03:36:19 2011] [error] [client 68.0.155.173] File does not exist: /var/www/crossdomain.xml, referer: http://s.nsdsvc.com/App/DddWrapper.swf?c=4
[Thu Dec 29 03:48:00 2011] [error] server reached MaxClients setting, consider raising the MaxClients setting
zend_mm_heap corrupted
更多的
[Wed Dec 28 19:17:32 2011] [error] [client 180.253.219.197] File does not exist: /var/www/sitemap.xml
[Wed Dec 28 19:19:36 2011] [error] [client 66.31.52.24] File does not exist: /var/www/crossdomain.xml
[Wed Dec 28 19:20:38 2011] [error] [client 67.197.205.1] Invalid URI in request 8th-2011-a.html HTTP/1.1
[Wed Dec 28 19:23:08 2011] [error] [client 67.197.205.1] Invalid URI in request 7e12e6845d73e4e HTTP/1.1
这是我的 error.log 中的。我的访问日志有 800MB,你们过一段时间会删除访问日志吗?
知道是什么原因导致崩溃吗?谢谢!
编辑:令人惊讶的是它已经 30 分钟没有崩溃了。
答案1
我在访问日志中看到过这些类型的条目。有人试图嗅探已知漏洞,例如 /var/www/phpMyAdmin 条目意味着有人试图测试您是否在其默认路径下安装了 phpMyAdmin。如果您安装了,他们可能会继续尝试破解管理员密码。
似乎您的网站正遭受攻击(拒绝服务),因为有人试图淹没您的服务器,因此您收到诸如已达到“MaxClients”之类的错误。
这是一个非常好的文章关于设置一些过滤器来保护您免受这些类型的请求的侵害。
答案2
您的屏幕截图和错误日志讲述了两个完全不同的故事。
根据您的屏幕截图,您正尝试在已绑定的端口 80 上的 0.0.0.0 上运行 apache。检查谁在那里监听。运行以下命令:
netstat -tanlp | grep 80
此后,您的日志表明server reached MaxClients setting, consider raising the MaxClients setting
这意味着您有太多连接。要么您的网站非常受欢迎,要么有人试图用请求轰炸您的 Apache 以故意使其崩溃。您可以从 httpd.conf 增加连接。将那里的 MaxClients 增加到更高的值。
关于zend_mm_heap corrupted
检查此错误报告。stackoverflow 上的某个人通过增加 php.ini 中的 output_buffering= 值解决了这个问题。
请使用 logrotate 来减少日志的大小。它会根据您在 conf/ 中指定的参数拆分日志。请查看 /etc/logrotate.d/ 中的其他 logrotate conffiles