nginx 504エラーを簡単に自動的に監視するphpスクリプト
nginx 504エラーを簡単に自動的に監視するphpスクリプト
php接続ネットワークがタイムアウトしたため、nginx 504のエラーを招きやすく、ネットワークには多くの解決策がありますが、なぜ私のところでは効果がないのか分かりません.
だから私はスクリプトを書いて、定期的に私のサイトが504になったかどうかを検出するしかありません.504があれば、「nginxとphp-fpmを再起動する」という絶技を出すしかありません.
具体的なコードは以下の通りです.
#!/usr/bin/phpはあなたのphpパスです
このファイルの名前は504 checkです.php
権限chmod+x 504 checkを変更する.php
次にcrontab-eに行を追加します
* * * * */xx/504check.php >/dev/null 2>&1
毎分システムは自動的にウェブサイトの応答が遅いかどうかを検出して、もしそうならば、再起動します
php接続ネットワークがタイムアウトしたため、nginx 504のエラーを招きやすく、ネットワークには多くの解決策がありますが、なぜ私のところでは効果がないのか分かりません.
だから私はスクリプトを書いて、定期的に私のサイトが504になったかどうかを検出するしかありません.504があれば、「nginxとphp-fpmを再起動する」という絶技を出すしかありません.
具体的なコードは以下の通りです.
#!/usr/bin/phpはあなたのphpパスです
(show/hide)plain text
-
#!/usr/bin/php
-
<?php
-
error_reporting(E_ERROR);
-
define("EMAIL","[email protected]");// email
-
define("TIMEOUT",5);// ,5
-
function curl_get($url){
-
$curl = curl_init();
-
curl_setopt($curl, CURLOPT_URL, $url);
-
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
-
curl_setopt($curl, CURLOPT_TIMEOUT, TIMEOUT);
-
// Headers
-
$headers = array();
-
$headers[] = "Date: ".date('r');
-
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
-
$Data = curl_exec($curl);
-
return $Data ;
-
-
}
-
-
function check($d,$k){
-
$url = $d;//"http://".$d;
-
$html = curl_get($url);
-
if( substr_count($html,$k) < 1){
-
mail(EMAIL,"JP 504 timeout for ".$d,$html);
-
exec("/etc/init.d/nginx restart "); // nginx
-
exec("/etc/init.d/php-fpm restart");// php-fpm
-
}
-
}
-
-
check("https://www.homezz.com","homezz.com");
-
?>
このファイルの名前は504 checkです.php
権限chmod+x 504 checkを変更する.php
次にcrontab-eに行を追加します
* * * * */xx/504check.php >/dev/null 2>&1
毎分システムは自動的にウェブサイトの応答が遅いかどうかを検出して、もしそうならば、再起動します