LNMP:nginx 解决 connect() failed

问题

win10下安装wsl子系统,并成功搭建lnmp环境后,ngixn请求出现502错误。查看nginx日志(/var/log/nginx/error.log)报错如下。

2020/06/16 11:09:50 [error] 2293#2293: *1 upstream timed out (110: Connection timed out) while reading upstream, client: 192.168.58.102, server: 192.168.xx.xx, request: "POST 你的请求地址 HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.2-fpm.sock:", host: "192.168.xx.xx", referrer: "你的请求地址"

定位排查

检查php-fpm是否运行

执行命令查看php-fpm的启动状态,如果没有启动则启动php-fpm即可

/etc/init.d/php7.2-fpm status

ps -ef|grep php

image.png

php-fpm队列是否满了

1.在nginx配置中加一个location,设置如下

location ~ ^/status$ {
    include fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}

2.在php-fpm.conf中打开选项

pm.status_path = /status

3.设置完成后即可通过 http://域名/status 看到当前的php情况。示例如下。

确认nginx配置文件

因为nginx和php有两种连接方法。
连接方式一:

fastcgi_pass 127.0.0.1:9000;

连接方式二:

fastcgi_pass unix:/run/php/php7.2-fpm.sock;

这个具体怎么用要去php-fpm里面去看他的配置文件
/etc/php/7.2/fpm/pool.d/www.conf里面的Listen配置。

如果Listen是端口就写127.0.0.1:9000;
如果是路径,nginx的配置文件也要是路径,unix:/run/php/php7.0-fpm.sock;

确认两个地址配置一直后,重启一下nginx就可以访问了。

阅读 284

推荐阅读