Nginx+php更改了fastcgi_pass后面的地址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 
<?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服务后测试发现正常。问题得以解决。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券