Nginx+php+laravel SSL HTTPS 502报错
在新安装的服务器上搭建框架配置nginx,SSL,https域名访问,一直报错502,半天配置,就是一点反应没有,弄得我头大。
现在将我的解决方法记录下:
找nginx日志,到ningx日志发现日志啥也没有,调整报错级别,error_log 级别分为debug,info,notice, warn, error, crit 默认为crit, 该级别在日志名后边定义格式如下:error_log /your/path/error.log crit;
crit 记录的日志最少,而debug记录的日志最多。如果你的nginx遇到一些问题,比如502比较频繁出现,但是看默认的error_log并没有看到有意义的信息,那么就可以调一下错误日志的级别,当你调成error级别时,错误日志记录的内容会更加丰富。折腾半天不是nginx的问题。调整为error后,重启看日志:
[error] 28572#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 222.128.27.110, server: www.xxxxx.com, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "xxxxx.com"
1.php-fpm没有运行
执行如下命令查看是否启动了php-fpm,如果没有则启动你的php-fpm即可
netstat -ant | grep 9000
2.php-fpm队列满了
php-fpm.conf配置文件pm.max_children修改大一点,重启php-fpm并观察日志情况
我的情况就是第一个,执行命令后发现,php-fpm确实没运行。然后执行重启,ERROR: An another FPM instance seems to already listen on /tmp/php-cgi.sock FPM initialization failed
# vim /usr/local/php/etc/php-fpm.conf
[www]
listen = /tmp/php-cgi.sock //注意
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
此时我们需要根据配置文件的listen地址做对应的修改:
# vim /usr/local/nginx/conf/nginx.conf
location ~ [^/]\.php(/|$) {
fastcgi_pass unix:/tmp/php-cgi.sock; //把127.0.0.1:9000改为此行
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location / {
root html;
index index.php index.html index.htm;
}
[[email protected]]# service php-fpm start
Starting php-fpm [09-Apr-2020 11:40:31] ERROR: An another FPM instance seems to already listen on /tmp/php-cgi.sock
[09-Apr-2020 11:40:31] ERROR: FPM initialization failed
failed
[[email protected]]# netstat -ant | grep 9000
[[email protected]]# vim /usr/local/php/etc/php-fpm.conf
[[email protected] tmp]# service php-fpm stop
Gracefully shutting down php-fpm . done
[[email protected]]# service php-fpm start
Starting php-fpm done
修改完平滑重启nginx,然后启动php-fpm,OK