黑帽联盟

 找回密码
 会员注册
查看: 1023|回复: 0
打印 上一主题 下一主题

[脚本语言] Nginx 502 Bad Gateway 自动重启脚本

[复制链接]

852

主题

38

听众

3173

积分

白金VIP

Rank: 8Rank: 8

  • TA的每日心情
    开心
    2024-3-7 12:52
  • 签到天数: 1538 天

    [LV.Master]伴坛终老

    需要确保系统已安装curl,centos可以执行:yum install curl,debian/ubuntu可以执行:apt-get install curl

    用winscp或vi在/root目录下创建502.sh 内容如下:

    #!/bin/bash
    # author: 定位
    # website: https://bbs.cnblackhat.com

    CheckURL="https://bbs.cnblackhat.com"

    STATUS_CODE=`curl -o /dev/null -m 10 --connect-timeout 10 -s -w %{http_code} $CheckURL`
    #echo "$CheckURL Status Code:\t$STATUS_CODE"
    if [ "$STATUS_CODE" = "502" ]; then
            /etc/init.d/php-fpm restart
    fi

    chmod +x /root/502.sh
    用crontab 一分钟执行一次。上面的https://bbs.cnblackhat.com改成你的地址,如果该页面是静态,需换成以php的页面地址。


    其他的重启脚本,下面这个如果php函数里禁用了shell_exec 将无法使用。

    #!/usr/bin/php

    <?
    $url = 'https://bbs.cnblackhat.com';
    $cmd = '/etc/init.d/php-fpm restart';

    for($i = 0; $i < 5; $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();
    }
    }
    ?>

    用crontab 一分钟执行一次。 url和cmd根据自己的改。

    原理就是用curl获取HTTP头,发现502状态码就执行重启php-fpm的命令。
    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部