• Nginx 遇到 502 Bad Gateway 自动重启脚本


    放到crontab里一分钟执行一次。url和cmd根据自己的改。
    原理就是用curl获取HTTP头,发现502状态码就执行重启php-fpm的命令。

    <span style="color: #666666; font-style: italic;">#!/usr/bin/php
    </span><span style="color: #339933;"><!--</span><span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://www.deepvps.com'</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$cmd</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/usr/local/php/sbin/php-fpm restart'</span><span style="color: #339933;">;</span>
     
    <span style="color: #b1b100;">for</span><span style="color: #009900;">(</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;"><</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">++</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>         <span style="color: #000088;">$exec</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">"curl  connect-timeout 3 -I <span style="color: #006699; font-weight: bold;">$url</span> 2>/dev/null"</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #990000;">shell_exec</span><span style="color: #009900;">(</span><span style="color: #000088;">$exec</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
     
            <span style="color: #b1b100;">if</span><span style="color: #009900;">(</span><span style="color: #990000;">stripos</span><span style="color: #009900;">(</span><span style="color: #000088;">$res</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'502 Bad Gateway'</span><span style="color: #009900;">)</span> <span style="color: #339933;">!==</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
                    <span style="color: #990000;">shell_exec</span><span style="color: #009900;">(</span><span style="color: #000088;">$cmd</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
                    <span style="color: #990000;">exit</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">}</span>
    <span style="color: #009900;">}</span>
    <span style="color: #339933;">--></span>

    至于crontab,请自行Google搜索

    转自:http://www.hostloc.com/viewthread.php?tid=19208&page=1#pid235729

    原创文章如转载,请注明:转载自深度VPS [ http://www.deepvps.com ] 
  • 相关阅读:
    Redis系列之一缓存穿透,缓存击穿,缓存雪崩
    centos 7 安装KVM
    windows 下免安装版本(zip archive)的 mysql 安装
    IDEA Scala 程序报错 Exception in thread "main" java.lang.NoClassDefFoundError: scala/Predef$
    Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: Invalid status 16 (state=08S01,code=0)
    串口知识笔记
    C语言常用函数笔记
    流媒体服务器、海康威视 大华摄像头实现视频监控、直播解决方案(转)
    315M、433M和2.4G笔记
    MOS管开关电路笔记
  • 原文地址:https://www.cnblogs.com/lexus/p/1826554.html
Copyright © 2020-2023  润新知