nginxでIPv6を有効化する。

最終更新日

近年IPv6の普及が進んでいます。特にNTT系光回線ではPPPoE網の混雑により、プロバイダ側もIPv6の利用を推奨しています。(あくまでIPv4 over IPv6を勧めているので厳密には微妙なところですが…)
いずれにしても、WEBサイト運営者は、表示速度向上目的も含め、IPv6への対応が必要になってくるのではないでしょうか。VPSなどではIPv6が割り当てられているところも増えておりますので、ぜひ対応したいところです。当サイトも開設時から対応しています。※サーバ会社が変わり非対応になりました。

前提として、DNSのAAAAレコードでサーバーのドメインとIPv6アドレスを紐付けておいてください。また、場合によってはNICにアドレスの割当が必要なことがありますので確認してください。

ファイルに追記するだけ

このサイトの一般公開前、接続テストを行っていたのですが、どう頑張ってもIPv4での接続になる上、ポートスキャンをしてもブロックされている状態でした。nginxの場合、IPv6でリッスンするには多少設定変更が必要だったのです。

設定は非常に簡単です。サイトの設定ファイルに下記のコードを追記するだけです。普通は/etc/nginx/のどこかにありますね。

server{
…
#HTTPの場合
listen [::]:80;
#HTTPSの場合
listen [::]:443;
…
}

基本的にはこれで設定完了です。

ただし、443での待受には注意が必要です。
server内に下記の指定があるか確認してください。

ssl on;

この指定がない場合は、

listen [::]:443 ssl;

このようにしてSSLパラメータを付ける必要があります。
おそらくすでにIPv4でリッスンしている場合はどちらかになっているはずです。

追記したら

$ sudo systemctl reload nginx 

これで設定を適用できます。あとは忘れずにiptablesや各種ファイアウォールでIPv6の80、443番ポートを開けておきましょう。

試しに同じ設定をしている当サイトでテストしてみましょう。

問題なく対応できていますね。

シェアする