在尝试实施 Nginx 缓存后,我无法让我的网站正常工作。
我使用 Ubuntu 16.04 (xenial)、Nginx (1.10.3)、PHP-FPM (7.0) 和 WordPress。
UFW 未过滤端口 9000(用于 php-fpm)。
重现我的环境
1 - 设置confs:
2 - 创建缓存目录:
mkdir -p /var/cache/nginx/fastcgi_temp/cache/
chmod 755 /var/cache/nginx/fastcgi_temp/cache/
chown www-data:www-data /var/cache/nginx/fastcgi_temp/cache/
3 - 服务器重启:
systemctl restart nginx.service
/etc/init.d/php*-fpm restart
4-错误和调试尝试:
*1 connect() failed (111: Connection refused) while connecting to upstream,
client: MY_IP_ADDRESS, server: example.com, request: "GET /
HTTP/2.0", upstream: "fastcgi://127.0.0.1:9000".
浏览器给出:
502 Bad Gateway nginx/1.10.3 (Ubuntu)
调试:
/etc/init.d/php*-fpm status
带来:
● php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-04-27 07:09:28 UTC; 3s ago
Process: 16336 ExecStartPre=/usr/lib/php/php7.0-fpm-checkconf (code=exited, status=0/SUCCESS)
Main PID: 16346 (php-fpm7.0)
Status: "Ready to handle connections"
我的问题
为什么连接被拒绝并且我的站点已关闭?
NerdOfLinux 更新:
+ curl -I example.com
HTTP/1.1 301 Moved Permanently
Content-Type: text/html
Content-Length: 194
Connection: keep-alive
和
grep "listen" /etc/php/7.0/fpm/pool.d/www.conf | grep -v ";"
+ grep --color=auto -v ';'
+ grep --color=auto listen /etc/php/7.0/fpm/pool.d/www.conf
listen = /run/php/php7.0-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
起作用的问题是您对 nginx
fastcgi_pass
指令的错误配置,以指向不存在的后端/上游网关。由于 14.10(或者是 15.10,我现在不记得确切)
php-fpm
在默认情况下侦听本地 UNIX 套接字而不是 TCP 端口 9000。我知道这一点是因为我带头在 Ubuntu 和 Debian 中对 FPM 的默认值进行了更改,并且它在包装中被接受。而且我知道这是您的设置,因为listen =
您的 FPM 行www.conf
说它正在侦听套接字。将
unix:/run/php/php7.0-fpm.sock
您的fastcgi_pass
指令放入nginx
服务器块中,而不是127.0.0.1:9000
您拥有的。这应该允许它正常工作,因为然后使用正确的 PHP 上游网关。检查您的 php-fpm 池定义,该定义位于
/etc/php/7.0/fpm/pool.d
用户 www-data 用于运行 php-fpm:
user = www-data group = www-data