최근 서버에 Nginx 502 Bad Gateway가 가끔 뜨네요. 컴퓨터 옆에 있으면 괜찮습니다. 그런데 한밤중이나 외출할 때는 어떻게 해야 하나요?
상관없습니다. 서비스 상태를 감지하고, 이상 징후를 감지하고, 자동으로 재시작하는 스크립트를 작성해 보세요.
자동 다시 시작 스크립트:
$url = 'http://blog.rebill.info'
$cmd = '/usr/local/php/sbin/php-fpm 재시작'
for($i = 0; $i < 5; $i ){
$exec = "curl connect-timeout 3 -I $url 2>/dev/null"
$res = shell_exec($exec)
If(stripos($res, '502 잘못된 게이트웨이') !== false){
shell_exec($cmd)
종료();
}
}
컬을 이용하여 HTTP 헤더를 획득하고, 502 상태 코드가 발견되면 해당 명령을 실행하여 php-fpm을 재시작하는 것이 원칙입니다.
실제 상황에 맞게 URL과 cmd를 직접 변경하세요. 그런 다음 crontab에 넣고 1분에 한 번씩 실행합니다.
*/1 * * * * /usr/bin/php /root/crontab/nginx502.php
이제 끝났습니다!