1. 程式人生 > >nginx 報錯 502 error日誌connect() failed (111: Connection refused) while connecting to upstream

nginx 報錯 502 error日誌connect() failed (111: Connection refused) while connecting to upstream

公司網站搬遷到新伺服器後,發現站點訪問不了,network裡面提示502,檢視相關的server配置,感覺沒有什麼問題,經過測試發現txt、html、等非php檔案能夠直接訪問,也就是php訪問不了,初步斷定有可能是php-fpm沒有安裝或者沒有啟動導致。

首先判斷php-fpm是否已經安裝,沒有安裝的情況就需要先安裝php-fpm,安裝可以引數相關資料。

確定好伺服器已經安裝了php-fpm之後,檢視是否已經啟動或者直接重啟:

[[email protected] /]# /usr/local/php/sbin/php-fpm start

啟動完成後,重啟nginx:
[

[email protected] /]# service nginx restart

然後重新整理網站頁面,但是並沒有成功,依然報錯。
此時我們先在檢視下錯誤日誌 error.log,發現裡面都是清一色的報錯:

connect() failed (111: Connection refused) while connecting to upstream … fastcgi://127.0.0.1:9000 …

提示的意思就是說連線不上9000埠,這就奇怪了,其實在平時配置nginx的server裡面,大部分應該都是配置127.0.0.1:9000 作為分發埠。

現在需要檢視一下是否有監聽9000埠:

[
[email protected]
/]# netstat -ant | grep 9000

發現並沒有監聽到,但實際上我們的php-fpm已經啟動,那現在怎麼辦呢?
我們去檢視一下php-fpm.conf裡面的配置:

[[email protected] /]# vim  /usr/local/php/etc/php-fpm.conf

找到listen:

<value name="listen_address">/tmp/php-cgi.sock</value>

此時我們需要根據配置檔案的listen地址做對應的修改:

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME d

o c u m e n t r o o t document_root fastcgi_script_name;
include fastcgi_params;

    }

改成:
location ~ .php$ {
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME d o c u m e n t r o o t document_root fastcgi_script_name;
include fastcgi_params;
}

重啟nginx。訪問成功。


作者:ljihe
來源:CSDN
原文:https://blog.csdn.net/ljihe/article/details/78025133