Nginx+php更改了fastcgi_pass後面的地址php不能正常請求
阿新 • • 發佈:2018-08-30
防火墻 配置 php-fpm 測試 mac os nec 防火 request tel 1.1.1 通過yum安裝Nginx和php,更改了Nginx裏面fastcgi_pass後的地址php不能正常請求
1.1.1.1 問題還原:
Nginx+php的服務器地址是10.0.0.41/24
Nginx 安裝的是1.14 php安裝的是7.1,yum安裝過程不細講
1.1.1.1 問題還原:
Nginx+php的服務器地址是10.0.0.41/24
Nginx 安裝的是1.14 php安裝的是7.1,yum安裝過程不細講
nginx的location裏面的配置如下 location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass 10.0.0.41:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; include fastcgi_params; } php-fpm配置文件更改的位置為: listen = 10.0.0.41:9000 這個時候在/usr/share/nginx/html下面寫了一個php的測試頁 [root@nginx01-41 ~]# cat /usr/share/nginx/html/test.php <?php phpinfo(); ?>
然後在瀏覽器裏面訪問10.0.0.41/test.php
1.1.1.2 剖析與解決:
然後分析錯誤502可能的原因:這個裏面的bad geteway不是字面上的意思,這個地方基本上都是php-fpm請求的時候不正常,然後就開始著後段的錯誤
查看訪問日誌,和錯誤日誌
訪問日誌: 10.0.0.1 - - [30/Aug/2018:01:46:02 -0400] "GET /test.php HTTP/1.1" 200 95137 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36" "-" 10.0.0.1 - - [30/Aug/2018:02:18:05 -0400] "GET /test.php HTTP/1.1" 502 575 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36" "-" 錯誤日誌: 2018/08/30 02:18:05 [error] 9609#9609: *4 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 10.0.0.1, server: localhost, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://10.0.0.41:9000", host: "10.0.0.41" 意思就是請求這個主機的10.0.0.41:9000端口失敗
然後就去觀看防火墻和selinux是否關閉,9000端口是否正常,發現防火墻和selinux都是關閉的,9000端口也正常監聽。
這個時候就想肯定是php-fpm轉發又問題,就開始去找配置文件,看看是不是監聽的有問題
vim /etc/php-fpm.d/www.conf
在裏面搜索listen監聽相關的內容,找到一個listen.allowed_clients 的語句
listen.allowed_clients = 127.0.0.1,看到這的時候我就明白可能是php配置文件裏面我們要允許clients可以通過這個地址訪問
更改為listen.allowed_clients = 10.0.0.41
保存重啟php服務後測試發現正常。問題得以解決。
Nginx+php更改了fastcgi_pass後面的地址php不能正常請求