受到fastcgi_next_upstream這個參數的啟發,使用PHP-FPM線程池的概念,可以完美的解決502錯誤(http_502是沒有的)http里面的配置upstreamphp_fpm_sock{serverunix:/dev/shm/php-fpm.socket;serverunix:/dev/shm/php-fpm-b.socket;serverunix:/dev/shm/php-fpm-c.socket;}fastcgi_next_upstreamerrortimeoutinvalid_headerhttp_503http_500;server里面fastcgi_pass配置location~*\.php${fastcgi_pass**unix:php_fpm_sock;**fastcgi_indexindex.php;client_max_body_size50M;client_body_temp_path/data/www/tmp;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;includefastcgi.conf;includefastcgi_params;}php-fpm的配置#/etc/php-fpm.conf文件包含多個配置文件include=/etc/php-fpm.d/*.conf#/etc/php-fpm.d/目錄www-a.confwww-b.confwww-c.conf#配置,三個文件這里不一致,分別對應#Startanewpoolnamedwww-a[www-a]listen=/dev/shm/php-fpm.socketps-ef查看www1799631539012:13?00:00:51php-fpm:poolwww-bwww1799931539012:13?00:00:48php-fpm:poolwww-awww1801031539012:14?00:00:46php-fpm:poolwww-bwww1806331539012:25?00:00:42php-fpm:poolwww-cwww1815331539012:47?00:00:34php-fpm:poolwww-cwww1815431539112:47?00:00:37php-fpm:poolwww-awww1818531539012:55?00:00:29php-fpm:poolwww-cwww1831331539013:24?00:00:10php-fpm:poolwww-a1、啟動的各個PHP-FPM線程池,只要不都掛掉,nginx就可以正常執行PHP,如果有的異常退出了,基本也不影響網站運行2、fastcgi_next_upstream那行的參數,不需要加http_502,實際你也加不上去的3、原有的每段類似這種location~\.php${}代碼都需要對fastcgi_pass這行根據示例改造