Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> lnmp一鍵包502 Bad Gateway解決方法

lnmp一鍵包502 Bad Gateway解決方法

日期:2017/2/8 10:18:45      編輯:關於服務器

 使用LNmp有一段時間了,可是在流量大的時候,有時會莫名其妙的出現Nginx 502 Bad Gateway,不是php-fpm死掉了,就是nginx死掉了,網站多的時候根本沒空每天一個個檢查,往往是網站dwon了1、2天後才發現,流量損失了不少。
   飄易就給出一個解決此類錯誤的方法,自動檢測電腦配置網站是否正常,不正常的話就自動重啟LNmp。
   首先,在網站根目錄下建立一個 php文件 test200.php,內容隨便寫幾個字,如:

  <?php
echo "200_OK";
?>

   然後建立一個腳本 vi test200_monitor.sh
   腳本裡的內容如下:

  wget http://www.piaoyi.org/test200.php  --spider
c_monitor=$?
if [ $c_monitor = "1" ];
then
echo "# Error no 200 status, time: " $(date +"%y-%m-%d %H:%M:%S") "restart lnmp.. " | mail -s "Critical Info: Website is offline." [email protected]
/usr/local/php/sbin/php-fpm restart
echo "restart lnmp: php-fpm"
fi

    這個腳本的意思就是監控 http://www.piaoyi.org/test200.php 這個網頁,如果返回的不是 200 狀態碼,就自動重啟 PHP。其中命令行 /usr/local/php/sbin/php-fpm restart 可以換成其他命令,如 /root/lnmp restart 等。郵箱換成你自己的,每次發生錯誤時,會給你發送郵件。
     【補充 vi vim用法】:i 進入編輯狀態; :wq 保存退出; :q! 不保存退出。
     然後是設定權限:

  chmod 777 /root/test200_monitor.sh

   運行定時程序:

  crontab -e

    輸入以下內容每隔5分鐘檢測一次

  */5 * * * * /root/test200_monitor.sh

     好了,大功告成。你可以放心的工作去了,lnmp不會再出現502 Bad Gateway的錯誤了。
 如果你希望直接在php腳本裡運行命令行也可以,網站根目錄下建立一個php文件 monitor.php ,裡面內容如下:

  <?
$url = 'http://www.piaoyi.org';
$cmd = '/usr/local/php/sbin/php-fpm restart';
$exec = "curl --connect-timeout 5 -I $url 2>/dev/null";
$res = shell_exec($exec);
if(stripos($res,'502 Bad Gateway') !== false){
shell_exec($cmd);
exit();
}
?>

    然後同上面一樣,用 crontab 添加一行定時運行命令,在線監測即可。

Copyright © Windows教程網 All Rights Reserved