2013-11-01 29 views
0

您是否有任何有用的链接,提示或脚本为使用Wordpress和nginx的较大站点安装心跳工具。如果有太多人在服务器关闭的同时访问该网站。发生这种情况后,我需要立即自动重启站点。有一种简单的方法可以在服务器上的502网关超时后自动执行php-fpm restart吗?

问候

+0

我宁愿缩放安装程序,而不是在失败时重新启动它。 –

+0

检查fpm配置文件,发现失败后有什么关于查杀的,不记得 –

+0

谢谢大家!会考虑并做一些研究。 – user2718671

回答

2

你的问题是如何重新启动PHP在502我的第一个答案是防止从502在第一时间发生的一种尝试。

  1. 这可能是PHP消耗太多内存。我的猜测是你的PHP FCGI儿童数量太高。在你的init脚本中,你应该有一个像PHP_FCGI_CHILDREN = 20或类似的条目来控制将启动的PHP进程的数量。我会尽量减少这个数字。如果您可以确定每个PHP进程的平均内存(也许使用top),那么您可以建立应该运行的最大PHP进程数。例如,如果您有一台2,000MB服务器,并且您的PHP进程每次最多消耗100MB,则您需要将它们限制为20.

  2. 您可以创建另一个位置并使用@符号开始名称。 @符号用于“内部”位置。我喜欢使用http://openresty.org发布的nginx。它包括ngx_lua http://wiki.nginx.org/HttpLuaModule模块。 Lua是一种脚本语言,可以(除其他外)执行shell命令。例如:

    location/{ 
        error_page 502 = @php502error; 
    } 
    location @php502error { 
        content_by_lua 'os.execute("/bin/restart-my-php-processes.sh")'; 
    } 
    

    os.execute阻止,所以你要记住这一点......我听说过的人建立一个THTTPD运行的脚本。所以你可以在你的@ php502error位置使用proxy_pass。

+0

好的,谢谢。我会检查这些设置。但我仍然认为问题在于有时候有太多人同时访问该网站。我们会看到;) – user2718671

+0

理论上来说是个好主意。但是,Web服务器用户可能会缺少重新启动服务的权限...... – BurninLeo

相关问题