この記事では、主にNginx 502エラーを監視し、php-fpmを自動的に再起動するPHPスクリプトを紹介します。この記事では、実装コードを直接与え、それをcronに入れます。困っている友達はそれを参考にしてください
最近、サーバー上にNginx 502 Bad Gatewayが時々現れますが、それがコンピューターの近くにある場合は大丈夫ですが、夜中や外出時はどうすればよいですか?
どうでもいいので、サービスの状態を検知して異常を見つけて自動で再起動するスクリプトを書いてください。自動再起動スクリプト:
コードは以下の通りです:
$url = 'http://blog.rebill.info';
$cmd = '/usr/local/php/sbin/php-fpm restart';
for($i = 0; $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();
}
}
原理としては、curlを使ってHTTPヘッダを取得し、ステータスコード502が見つかったらコマンドを実行してphp-fpmを再起動するというものです。
実際の状況に応じて、URLとcmdを独自のものに変更します。次に、それを crontab に配置し、1 分に 1 回実行します。
コードは以下の通りです:
*/1 * * * * /usr/bin/php /root/crontab/nginx502.php
完成しました!
。