nginx:连接到上游时,connect()失败(111:连接被拒绝)


80

尝试部署我的第一个门户。

通过浏览器发送请求时,浏览器中出现502网关超时错误

当我检查日志时,出现此错误

 2014/02/03 09:00:32 [error] 16607#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 14.159.131.19, server: foo.com, request: "GET HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "22.11.180.154"

是否有与权限相关的问题


2
请添加信息以帮助了解问题,您的配置以及您做了什么?哪些链接断开了,以及是否有工作,等等
Mohammad AbuShady 2014年

2
我的问题已解决.....我尚未在服务器中安装php
Abhishek Tripathi 2014年


@lucky所以我认为最好关闭这个问题。
Farsheed 2014年

Answers:


91

我认为该解决方案无论如何都不会起作用,因为您将在错误日志文件中看到一些错误消息。

解决方案比我想象的要容易得多。

简单地,打开以下路径到您的php5-fpm

sudo nano /etc/php5/fpm/pool.d/www.conf

或者如果您是管理员“ root”

nano /etc/php5/fpm/pool.d/www.conf

然后找到此行并取消注释:

listen.allowed_clients = 127.0.0.1

该解决方案将使您能够在vhost块中使用listen = 127.0.0.1:9000

像这样:fastcgi_pass 127.0.0.1:9000;

进行修改后,您只需重启或重新加载Nginx和Php5-fpm

php5-fpm

sudo service php5-fpm restart

要么

sudo service php5-fpm reload

Nginx的

sudo service nginx restart

要么

sudo service nginx reload

从评论:

也评论

;listen = /var/run/php5-fpm.sock 

并添加

listen = 9000

30
listen = 9000;listen = /var/run/php5-fpm.sock
n611x007

1
在CentOS 7上,这个文件/etc/php-fpm.d/www.conf适合我使用,我必须添加listen = 9000并注释掉listen = /var/run/php-fpm/php-fpm.sock

2
为什么不将NGINX配置更改为使用套接字而不是localhost:9000?通过将fastcgi_pass行更改为“astcgi_pass unix:/run/php/php7.0-fpm.sock;
KNejad

0

在NGINX conf中编写两个上游脚本时,我遇到了同样的问题

upstream php_upstream {
    server unix:/var/run/php/my.site.sock;
    server 127.0.0.1:9000;
}

...

fastcgi_pass php_upstream;

但在/etc/php/7.3/fpm/pool.d/www.conf我只听套接字

listen = /var/run/php/my.site.sock

所以我只需要套接字,就不用了127.0.0.1:9000,我只是删除了上游的IP +端口

upstream php_upstream {
    server unix:/var/run/php/my.site.sock;
}

可以在没有上游的情况下重写

fastcgi_pass unix:/var/run/php/my.site.sock;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.