PHP-FPM アップストリーム エラー (IPv6 の場合)

PHP-FPM アップストリーム エラー (IPv6 の場合)

新しい Ubuntu 20.04.2 サーバーに、PHP7.4-fpm を搭載した最新の Nginx をインストールしました。

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/"

これについてグーグルで調べたところ、2番目の答えこれについて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;

ただし、上記の変更を行って nginx と php7.4-fpm を再起動した後、サーバー コントロール パネル (Virtualmin) で PHP 実行モードを確認すると、使用可能な 2 つのオプションのどちらも使用されていませFCGIdFPM

FPM を選択して保存をクリックすると、fastcgi_pass 127.0.0.1:8001;nginx サーバー ブロック ファイル内の行が元に戻りfastcgi_pass localhost:8001;、上記のエラーが再び表示され始めます。

listen 0.0.0.0:80 default_server;ただし、nginx または fpm を再起動しても元に戻りませんでした。

FPM に IPv6 アドレスではなく IPv4 アドレスを使用するように指示するにはどうすればよいですか?

注意listen = /run/php/php7.4-fpm.sockに変更しlisten = 127.0.0.1:8000てから上記の手順を実行してみました/etc/php/7.4/fpm/pool.d/www.confが、それでも効果はなく、同じことが起こりました。


追伸この問題は私が使用したコントロール パネルとは関係ありません。どうやらデュアル スタック ipv4/ipv6 設定で PHP-FPM を使用しようとしたときにこの問題に関連していると思われる ServerFault の投稿やオンラインのフォーラム スレッドが多数あるためです。

関連情報