nginx 報錯 connect() failed (111: Connection refused) while connecting to upstream


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


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

確定好服務器已經安裝了php-fpm之后,查看是否已經啟動或者直接重啟:

[root@izwz9glf2r6p2z8ytslvblz /]# /usr/local/php/sbin/php-fpm start


啟動完成后,重啟nginx:

[root@izwz9glf2r6p2z8ytslvblz /]# 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端口:

[root@izwz9glf2r6p2z8ytslvblz /]# netstat -ant | grep 9000

發現並沒有監聽到,但實際上我們的php-fpm已經啟動,那現在怎么辦呢?

我們去查看一下php-fpm.conf里面的配置:

[root@izwz9glf2r6p2z8ytslvblz /]# 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 $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 $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }


重啟nginx。訪問成功。



---------------------
作者:ljihe
來源:CSDN
原文:https://blog.csdn.net/ljihe/article/details/78025133
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM