ipv6 的 PHP-FPM 上游錯誤

ipv6 的 PHP-FPM 上游錯誤

我剛剛在新的 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/"

在谷歌上搜尋這一點時,我發現第二個答案在此伺服器故障線程這是因為我使用的是 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;

但是,在進行上述更改並重新啟動 nginx 和 php7.4-fpm 後,如果我在伺服器控制面板(Virtualmin)中檢查 PHP 執行模式,FCGId則可用的兩個選項都沒有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.socklisten = 127.0.0.1:8000in /etc/php/7.4/fpm/pool.d/www.conf,然後按照上述步驟進行操作,但這也沒有幫助,並且發生了相同的事情。


聚苯乙烯這個問題與我使用的控制面板無關,因為當他們嘗試將 PHP-FPM 與雙棧 ipv4/ipv6 設定一起使用時,網上有相當多的 ServerFault 帖子和多個論壇線程似乎與此問題相關顯然。

相關內容