本文记录一次自己在配置nginx+php-fpm时候遇到的问题,访问nginx server一直返回502。
欢迎讨论和吐槽。
问题原因
- 这个问题对我来说是由于粗心造成,不过大家以后可能会遇到,我这边分享出来。
- 当时我在自己的php.ini中添加因为swoole扩展
extension=swoole.so
- 重启php-fpm
service php-fpm restart
- 然后我这边添加了个nginx server,重启了nginx
nginx -t nginx -s reload
- 问题出现了,访问原先正常的站点直接502.
问题解决
- 我第一反应是自己添加的server配置出问题,删除掉,重启nginx,没有用
- 在网上查找,大部分都是是因为配置问题,如进程数配置小了,不过这些问题可能生产环境会遇到,我这个是自己的测试环境,应该不会出现这些问题。网上很多解答
- 查看nginx log ,发现提示connect fail (111 connect refused)
- 在网上找到一个类似的问题:connect refused
location ~ \.php { root /data/danmu-demo-master; fastcgi_pass 127.0.0.1:9000; #fastcgi_pass unix:/dev/shm/php7.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; include fastcgi_params; }
- 在我的php-fpm中配置的是
listen = /dev/shm/php7.sock
- 我把php-fpm中配置改为
listen = 9000
- 重启fpm,问题解决!
总结
- nginx+php-fpm的配置有很多需要注意的地方,遇到问题结合日志,以及网上的答案排查问题;
- nginx返回502的原因有很多很多种,大家遇到问题最好记录下来,这就是所谓的经验。