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番ポートを開けておきましょう。
試しに同じ設定をしている当サイトでテストしてみましょう。
問題なく対応できていますね。