![Apache 仮想ホストを IPv6 で動作するように設定するにはどうすればよいですか?](https://rvso.com/image/567631/Apache%20%E4%BB%AE%E6%83%B3%E3%83%9B%E3%82%B9%E3%83%88%E3%82%92%20IPv6%20%E3%81%A7%E5%8B%95%E4%BD%9C%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
1 つの IPv4 アドレスといくつかの IPv6 アドレスを持つサーバーがあります。 1 つのドメインは IPv4 A レコードにリダイレクトされます。 Apache の ports.conf を次のように設定しました。
Listen ip.v4.address:80
NameVirtualHost ip.v4.address:80
および仮想ホストファイル:
<VirtualHost ip.v4.address:80>
DocumentRoot /var/www/first/
ServerName first.domain
ServerAlias www.first.domain
ErrorLog ...
CustomLog ...
</VirtualHost>
そして、すべて正常に動作します。
ここで、2 番目の IP を持つ 2 番目のドメインに新しい仮想ホストを作成します。2 番目のドメインを ipv6 AAAA レコードにリダイレクトし、ports.conf に追加します。
Listen [ip.v6.address]:80
NameVirtualHost [ip.v6.address]:80
新しい仮想ホストファイルを作成します:
<VirtualHost [ip.v6.address]:80>
DocumentRoot /var/www/second/
ServerName second.domain
ServerAlias www.second.domain
ErrorLog ...
CustomLog ...
</VirtualHost>
Apache を再起動します。サーバーの起動時にエラーは発生しませんでしたが、動作しません。ブラウザで 2 番目のドメインを入力すると、サーバーが見つかりません。入力すると、[ip.v6.address]
サイトが表示されます。
何か助けて?
答え1
Apache の設定は正しいように見えますが、1 つのサイトに IPv4 と IPv6 (デュアル スタック) の両方でアクセスできるようにするには、必要以上に複雑になります。
の代わりに
<VirtualHost ip.v4.address:80>
...
</VirtualHost>
<VirtualHost [ip.v6.address]:80>
...
</VirtualHost>
できるよ
<VirtualHost ip.v4.address:80 [ip.v6.address]:80>
...
</VirtualHost>
こうすることで、単一の仮想ホストが両方の IP アドレスをリッスンします。メンテナンスがはるかに簡単になります。
IPv6 で別のサイトを本当に必要とする場合は、もちろん設定は正しいです。
答え2
これは Apache エラーではなく、IPv6 名前解決エラーのようです。名前がアドレスに正しく解決されるかどうかを確認してください。
答え3
名前は正しい IPv6 アドレスに解決されますか? これはドメイン解決の問題のようです。