解决nginx/1.14.2报502 Bad Gateway错误

新搭建了一个站点,访问的时候却报了502的错误,先对nginx日志做一下监听看看,执行tail -f /var/log/nginx/error.log,看到以下错误

2020/01/02 11:33:42 [crit] 28016#28016: *7 connect() to unix:/run/php/php7.1-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 127.0.0.1, server: my.vb.com, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.1-fpm.sock:", host: "my.vb.com"

意思好明显,连接不上,查了一下,发现需要调整一下php配置文件,看了一下我自己的配置文件

hoo@sss-383:cat /etc/php/7.1/fpm/pool.d/www.conf

#发现nginx的配置如下
;listen = /run/php/php7.1-fpm.sock
listen = [::]:9111

原因找到了,原来是配置错了,我的php7.1是用端口方式监听,而nginx的配置里面用了fpm.sock的方式(直接复制过来的配置,如下:)

	location ~ \.php$ {
        	fastcgi_pass unix:/run/php/php7.1-fpm.sock;
	        fastcgi_index index.php;
	        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
	        include fastcgi_params;
	}

解决方案有两种,如下:

一、修改站点配置文件,使用端口方式,再重启一下nginx,如下:
location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9111;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html/vb/public/$fastcgi_script_name;
            include        fastcgi_params;
        }

hoo@sss-383: sudo service nginx restart
二、修改php7.1的配置,注释端口方式,使用sock的监听方式,再重启php-fpm,如下:
listen = /run/php/php7.1-fpm.sock
;listen = [::]:9111

hoo@sss-383: sudo service php7.1-fpm restart