This article describes how to monitor Nginx502 errors in PHP scripts and automatically restart php-fpm. This article provides the implementation code and then puts it in cron for execution, for more information, see the recent Nginx 502 Bad Gateway on the server. what should I do if it is okay to be on the computer or go out in the middle of the night?
It doesn't matter. write a script to check the service status. if an exception is found, it will be restarted automatically.
Automatic restart script:
The code is as follows:
<? Php
$ Url = 'http: // blog.rebill.info ';
$ Cmd = '/usr/local/php/sbin/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, '2014, 502 Bad gateway ')! = False ){
Shell_exec ($ cmd );
Exit ();
}
}
The principle is to use curl to obtain the HTTP header and execute the command to restart php-fpm when the 502 status code is found.
The url and cmd are changed to your own according to the actual situation. Then run the command once a minute in crontab.
The code is as follows:
*/1 *****/usr/bin/php/root/crontab/nginx502.php
Success!