Apache virtualhostをipv6で動作するように設定するにはどうすればよいですか?


10

1つのipv4アドレスといくつかのipv6アドレスを持つサーバーを持っています。1つのドメインがipv4にリダイレクトされます。次のように、apache ports.confを設定したレコード:

Listen ip.v4.address:80
NameVirtualHost ip.v4.address:80

およびvirtualhostファイル:

<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]サイトに入ると表示されます。

何か助けは?


みんな助けてくれてありがとう。IPv6は正しく、2つの異なるサイトが必要です。このAAAAレコードを設定したドメインプロバイダーに連絡しました。彼らはそれをセットアップするのに24時間かかる可能性があると言いました、そしておそらくここに問題があります。私がAレコードを設定したとき、その効果はほぼ即時であり、AAAAは​​同じように機能すると思いました。
シェルディ、

あなたのお気に入りの回答にそのようにマークを付けて、そうすることで報酬を得ようとする人々に報酬をもらえるといいですね;-)
Sander Steffann

回答:


12

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
または多分<VirtualHost *:80>?
Koos van den Hout

2
これも確かに機能しますが、彼の例ではIPアドレスを明示的に指定したので、私も同様に指定しました。IPアドレスをあまり気にせず、Host:ヘッダーですべてを実行したい場合は、ソリューションがはるかに簡単です。ただし、SSL / TLSサイトには注意してください。サーバー名表示(TLS / SNI)がユーザーベースで機能することを確認する必要があります。
Sander Steffann、2011

4

これは、Apacheエラーではなく、IPv6名前解決エラーのように聞こえます。名前がアドレスに正しく解決されることを確認します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.