Webテンプレートで /proc/net/if_inet6 が存在するかどうかを確認し、[::]:80 のリッスンをオフにしているのを確認しましたが、デフォルトの nginx ファイルにはまだ残っています。
それを修正するために以下を追加しました。
- exec: sed -i '/listen \[::\]:80 default_server;/d' /etc/nginx/sites-available/default
- exec: sed -i 's/listen 80 default_server;/listen 0.0.0.0:80 default_server ipv6only=off;/' /etc/nginx/sites-available/default
- exec: sed -i 's/listen 80 default_server;/listen 0.0.0.0:80 default_server ipv6only=off;/' /etc/nginx/conf.d/discourse.conf
しかし、ログにはまだ以下が表示されます。
2025/09/02 21:34:29 [emerg] 359#359: socket() [::]:80 failed (97: Address family not supported by protocol)
2025/09/02 21:34:34 [notice] 3240#3240: signal process started
2025/09/02 21:34:34 [error] 3240#3240: open() "/run/nginx.pid" failed (2: No such file or directory)
ずっと昔、それは不可能に思えました。
カーネルレベルで IPv6 を無効にして Discourse を実際に動作させた人はいますか?
(理由:提供された VM で IPv6 がオフになっているためです。プロビジョニングに数か月かかりました。)