在某些时候,apache 似乎挂断了,不再处理请求,或者它们需要很长时间。我检查了错误日志。当我执行 apachctl stop 并再次启动 apache 时,没有显示任何错误,它又可以正常工作了
答案1
您的错误日志说了什么?
grep -i maxclient /var/log/httpd/error_log*
(认为这可能是 maxclient 问题...因此进行了该搜索)
您的 httpd.conf 文件可能需要进行调整。 话虽如此,让我们开始吧。
实际上,httpd.conf 总是位于同一个位置 - 我希望您对 shell 以及您选择的编辑器感到满意...我将在这个解释中使用 NANO。
首先完成这个命令:
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.bkup.beforeItuned
接下来使用以下命令在编辑器中打开原始 httpd.conf 文件:
nano /etc/httpd/conf/httpd.conf
然后使用“Control-W”打开搜索命令并输入 Timeout - 你应该会看到类似这样的内容
Timeout = 120
将其更改为
Timeout = 20
按 Control-X 键,然后保存文件覆盖原始文件
最后 - 使用以下命令重新启动 Apache:
/etc/init.d/apache2 restart
按照上述说明,您还可以编辑一些其他设置:
确保每次只做一项更改,以确保每项更改都能正常工作……缓慢进行总比重大更改和重大崩溃要好
搜索以下部分: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>
无论如何 - 这些应该是一个不错的开始 - 当然你会希望继续微调以获得最佳解决方案。
祝您编辑愉快:-)
这对你有帮助吗?一定要投票支持这个答案
答案2
Apache 崩溃的原因有很多。可能包括
- httpd.conf 或 .conf 中的配置不正确,包括
- 交通
- 内存使用情况
- 模块配置不当
- 有时间更新吗?
- 也许你被击中是因为开发?
您的问题很模糊,所以我首先要查看您的 httpd.conf,如果您使用的是模块化编译,请尝试阻止加载不需要的模块。这些行如下所示:LoadMoudle mod_rewrite modules/mod_rewrite.so
大致如此。如果您不使用它们,请将其关闭。
接下来,查看您正在运行哪个版本。如果是 PHP 应用程序,请将脚本内存使用量调整到可达到的水平。还要查看您配置的允许同时服务的客户端数量。
让我们面对现实吧:这份清单可能长达一英里,远远超出了我目前解释的能力。我强烈推荐Apache 性能调优文档更加详细,并且来自可辩驳的来源。
多年来,我亲身经历过许多服务器问题——它们会发生。自动化你对它们的响应。在你需要介入之前,让计算机有机会处理事件。我强烈推荐监控作为一个强大且功能强大的工具,无需担心 Nagios 配置问题。Monit 配置使用清晰、简洁的语法。
祝你好运。
答案3
检查它可以同时处理的请求数。查看 HTTPD.CONF 文件。
答案4
Apache 挂起的原因有很多。连接数不足只是其中一个潜在原因,所以不要想当然。如果 Apache 行为异常,我首先会检查以下事项:
- 当然是错误日志。
- 查看访问日志以查看是否有任何请求正在被处理。
- 使用以下方法检查系统负载顶部或 top 查看 Apache 是否繁忙。
- 用来
strace -p $APACHE_PID
窥探并查看 Apache 正在做什么。 - 启用将 PHP 错误记录到文件的功能。许多 Linux 发行版默认不记录 PHP 错误。