在某些时候,Apache似乎挂断了,不再提供服务请求,或者永远持续下去。 我检查了错误日志。 当我做apachctl停止并再次启动apache再次工作时不显示任何错误
你的错误日志说什么?
grep -i maxclient /var/log/httpd/error_log*
(认为这可能是一个最大的客户问题..因此,search的原因)
有可能你的httpd.conf文件需要调整。 这就是说让我们开始吧。
几乎总是httpd.conf位于@在同一个地方 – 我希望你是舒适的shell以及您所select的编辑器…我将在这个解释中使用NANO。
首先完成这个命令:
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.bkup.beforeItuned
接下来使用下面的命令在你的编辑器中打开原始的httpd.conf文件:
nano /etc/httpd/conf/httpd.conf
然后使用“Control-W”打开search命令并inputTimeout – 你应该看到类似的东西
Timeout = 120
改变它
Timeout = 20
按下Control-X键,然后保存覆盖原稿的文件
最后 – 重新启动Apache使用:
/etc/init.d/apache2 restart
遵循上述说明 – 您还可以编辑其他一些设置:
一定要一次做一个改变,以确保每个工作…慢,比主要的变化和主要的崩溃要好
search以下部分:prefork MPM(或只是prefork)
<IfModule prefork.c> StartServers 2 MinSpareServers 1 MaxSpareServers 5 MaxClients 10 MaxRequestsPerChild 1000 </IfModule>
并根据您的服务器的级别更改为以下内容之一:
基础级服务器(小资源):
<IfModule prefork.c> StartServers 1 MinSpareServers 1 MaxSpareServers 3 MaxClients 50 MaxRequestsPerChild 1000 </IfModule>
中级服务器(中等资源):
<IfModule prefork.c> StartServers 2 MinSpareServers 2 MaxSpareServers 5 MaxClients 100 MaxRequestsPerChild 1000 </IfModule>
更大级别的服务器(更大的资源):
<IfModule prefork.c> StartServers 2 MinSpareServers 2 MaxSpareServers 5 MaxClients 200 MaxRequestsPerChild 1000 </IfModule>
无论如何 – 这应该是一个体面的开始 – 当然,你会想继续调整,以获得最佳的解决scheme。
快乐编辑:-)
这对你有帮助吗? 一定要对这个答案进行投票
Apache可能会因为多种原因而崩溃。 可能性包括
你的问题非常模糊,所以我首先看一下你的httpd.conf,如果你使用模块化编译,请尝试阻止你不需要加载的模块。 这些行看起来像这样: LoadMoudle mod_rewrite modules/mod_rewrite.so对此LoadMoudle mod_rewrite modules/mod_rewrite.so影响。 如果您不使用它们,请closures它们。
接下来,看看你正在运行的是哪个版本。 如果它是一个PHP应用程序,请调整脚本内存使用情况。 还要看看您configuration了多less个客户端,以便在任何时候都可以提供服务。
让我们变得真实:名单可能长达一英里,远远超出了我在这个特定时间解释的能力。 我强烈推荐Apache性能调优文档,该文档详细介绍了一些可靠的源代码。
多年来,我亲身体验过许多服务器问题 – 它们发生了。 自动化你如何回应他们。 在您需要参与之前,让计算机有机会处理事件。 我强烈build议Monit作为一个强大而有能力的工具,而不要使用Nagiosconfiguration。 Monitconfiguration使用清晰简洁的语法。
祝你好运。
检查它可以同时处理的请求的数量。 查看HTTPD.CONF文件。
Apache挂起可能有很多原因。 没有足够的联系只是一个潜在的原因,所以不要假设任何东西。 我检查的第一件事,如果Apache行事奇怪:
strace -p $APACHE_PID来窥探Apache正在做什么。