fastcgi pass php fpm,Nginx+php更改了fastcgi_pass后面的地址php不能正常请求

  • Post author:
  • Post category:php


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安装过程不细讲

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

phpinfo();

?>

然后在浏览器里面访问10.0.0.41/test.php

b06da5090144fdcdb14688a8b54960d4.png

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服务后测试发现正常。问题得以解决。

1003bbe270a12321e3d8c83e8aea5330.png