PHP-FPM 上游 ipv6 错误

PHP-FPM 上游 ipv6 错误

我刚刚在全新的 Ubuntu 20.04.2 服务器上安装了最新的 Nginx 和 PHP7.4-fpm。

我添加了一个有 WordPress 网站的虚拟主机,并且它加载正常,但我注意到 nginx 日志中充斥着如下错误:

[error] 183472#183472: *625 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xxx.xxx.xx, server: example.com, request: "GET /some-page-name/ HTTP/1.1", upstream: "fastcgi://[::1]:8001", host: "example.com", referrer: "https://example.com/"

在谷歌搜索这个问题时,我发现第二个答案在此ServerFault 线程这是因为我使用的是 ipv6 地址,并且我可以通过在 nginx 服务器块文件中进行替换localhost来修复它,因为它不起作用。127.0.0.1fastcgi://[::1]:8001

我做了修改/etc/nginx/sites-available/example.com.conf并更改了以下行:

fastcgi_pass localhost:8001;

到:

fastcgi_pass 127.0.0.1:8001;

根据同一文章的评论服务器故障答案,在中/etc/nginx/sites-available/default,我更改了以下行:

listen 80 default_server;

到:

listen 0.0.0.0:80 default_server;

FCGId但是,在进行上述更改并重新启动 nginx 和 php7.4-fpm 后,如果我在服务器控制面板(Virtualmin)中检查 PHP 执行模式,则可用的两个选项均未FPM被使用。

当我选择 FPM 并单击保存时,fastcgi_pass 127.0.0.1:8001;nginx 服务器块文件中的行会恢复为,fastcgi_pass localhost:8001;并且上述错误再次开始出现。

listen 0.0.0.0:80 default_server;但是重新启动 nginx 或 fpm 后并没有恢复。

我如何指示 FPM 使用 ipv4 地址而不是 ipv6 地址?

注意:我尝试过改为listen = /run/php/php7.4-fpm.sock,然后按照上述步骤listen = 127.0.0.1:8000操作/etc/php/7.4/fpm/pool.d/www.conf,但这也无济于事,而且还是同样的事情发生。


附言这个问题与我使用的控制面板无关,因为网上有相当多的 ServerFault 帖子和多个论坛主题似乎与这个问题有关,当他们尝试使用带有双栈 ipv4/ipv6 设置的 PHP-FPM 时。

相关内容