top-image

刚才在GoDaddy上面修改一个域名的DNS 记录。点击保存后提示All records not containing errors have been successfully saved to your zone。

等待刷新页面后,记录没有被修改。

来回折腾几次才解决问题。解决方法是:删除记录后重新添加。

本来这个VPS没多少流量的,可是今天早上居然出现了502 bad Gateway的错误。使用SSH上来一看,所有的php-cgi进程挂掉了。使用命令重启php-fpm就好了。

502 bad gateway这个错误,一般在nginx等待php-fpm响应的时间过长,或者进程挂掉之后才会出现的。在网站突然遇到大流量的时候出现的机率比较大。

1)为了不至于nginx等待时间过长而出现这个错误,可以修改nginx的配置文件nginx.conf。在http段中加入以下代码:

1
2
3
4
5
6
7
fastcgi_connect_timeout 300; 
fastcgi_send_timeout 300; 
fastcgi_read_timeout 300; 
fastcgi_buffer_size 64k; 
fastcgi_buffers 4 64k; 
fastcgi_busy_buffers_size 128k; 
fastcgi_temp_file_write_size 256k;

如果你是采用了lnmp.org的安装包来安装的lnmp的话,就已经存在上面的代码了。

2)如果出现了502 bad gateway错误的话,只能重启php-fpm了。但是总不能半夜让我起床来重启php-fpm吧?对shell编程不熟悉,写了一段PHP代码来检测状态,在遇到502 bad gateway错误时,执行命令将php-fpm重启。

PHP的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$url = 'http://qingting.org';
$cmd = '/etc/init.d/php-fpm restart';
 
for($i = 0; $i < 2; $i ++)
{       $exec = "curl  connect-timeout 3 -I $url 2>/dev/null";
        $res = shell_exec($exec);
 
        if(stripos($res, '502 Bad Gateway') !== false){
                shell_exec($cmd);
                exit();
        }
}
 
?>

然后在/etc/crontab 加入一行代码

1
 * * * * * root /usr/bin/php /home/wwwroot/502badgateway.php

这样就可以一分钟检查一次了。嘻嘻

这里是蜻蜓小站!

bottom-img