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

Tri*_*i29 77 php fastcgi nginx

试图部署我的第一个门户网站.

当我通过浏览器发送请求时,我在浏览器中收到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"
Run Code Online (Sandbox Code Playgroud)

是否有任何与权限相关的问题

Dig*_*ite 87

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

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

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

sudo nano /etc/php5/fpm/pool.d/www.conf
Run Code Online (Sandbox Code Playgroud)

或者如果你是管理员'root'

nano /etc/php5/fpm/pool.d/www.conf
Run Code Online (Sandbox Code Playgroud)

然后找到这一行并取消注释:

listen.allowed_clients = 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

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

像这样:fastcgi_pass 127.0.0.1:9000;

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

PHP5-FPM

sudo service php5-fpm restart
Run Code Online (Sandbox Code Playgroud)

要么

sudo service php5-fpm reload
Run Code Online (Sandbox Code Playgroud)

Nginx的

sudo service nginx restart
Run Code Online (Sandbox Code Playgroud)

要么

sudo service nginx reload
Run Code Online (Sandbox Code Playgroud)

来自评论:

还评论

;listen = /var/run/php5-fpm.sock 
Run Code Online (Sandbox Code Playgroud)

并添加

listen = 9000
Run Code Online (Sandbox Code Playgroud)

  • `listen = 9000`和`; listen =/var/run/php5-fpm.sock` (30认同)
  • 为什么不更改 NGINX 配置以使用套接字而不是 localhost:9000?通过将`fastcgi_pass`行更改为“`astcgi_pass unix:/run/php/php7.0-fpm.sock;` (2认同)