Bagaimana cara mengatur apache virtualhost agar bekerja dengan ipv6?

10

Saya punya server dengan 1 alamat ipv4 dan dengan beberapa alamat ipv6. Satu domain dialihkan ke ipv4 Catatan saya mengatur apache ports.conf seperti ini:

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

dan file virtualhost:

<VirtualHost ip.v4.address:80>
DocumentRoot /var/www/first/
ServerName first.domain
ServerAlias www.first.domain
ErrorLog ...
CustomLog ...
</VirtualHost>

Dan semuanya bekerja dengan baik.

Sekarang saya ingin membuat virtualhost baru untuk domain kedua dengan ip kedua. Saya mengalihkan domain kedua ke catatan AAAA ipv6, tambahkan ke ports.conf:

Listen [ip.v6.address]:80
NameVirtualHost [ip.v6.address]:80

buat file virtualhost baru:

<VirtualHost [ip.v6.address]:80>
DocumentRoot /var/www/second/
ServerName second.domain
ServerAlias www.second.domain
ErrorLog ...
CustomLog ...
</VirtualHost>

dan restart Apache. Tidak ada kesalahan pada mulai server tetapi tidak berhasil. Ketika saya memasukkan domain kedua di browser, server tidak ditemukan. Ketika saya masuk [ip.v6.address]situs muncul.

Ada bantuan?

sheldy
sumber
Terima kasih atas bantuan semuanya. IPv6 benar dan saya perlu dua situs yang berbeda. Saya menghubungi penyedia domain saya tempat saya mengatur catatan AAAA ini. Mereka mengatakan perlu waktu 24 jam untuk mengaturnya dan mungkin inilah masalahnya. Ketika saya membuat catatan A efeknya hampir langsung dan saya pikir AAAA bekerja dengan cara yang sama.
sheldy
Akan lebih baik jika Anda menandai jawaban favorit Anda sedemikian rupa, sehingga orang-orang yang mencoba membantu Anda mendapatkan hadiah karena melakukannya ;-)
Sander Steffann

Jawaban:

12

Konfigurasi apache Anda terlihat benar, tetapi sedikit lebih rumit dari yang seharusnya jika Anda ingin satu situs dapat dijangkau melalui IPv4 dan IPv6 (dual stack).

Dari pada

<VirtualHost ip.v4.address:80>
...
</VirtualHost>

<VirtualHost [ip.v6.address]:80>
...
</VirtualHost>

Anda dapat melakukan

<VirtualHost ip.v4.address:80 [ip.v6.address]:80>
...
</VirtualHost>

Dengan begitu host virtual tunggal mendengarkan pada kedua alamat IP. Jauh lebih mudah untuk dirawat!

Jika Anda benar-benar menginginkan situs yang berbeda pada IPv6 maka konfigurasi Anda tentu saja benar.

Sander Steffann
sumber
2
Atau mungkin <VirtualHost *: 80>?
Koos van den Hout
2
Itu tentu bisa bekerja juga, tetapi karena dia secara eksplisit menentukan alamat IP dalam contohnya, saya juga melakukannya. Jika Anda tidak terlalu peduli dengan alamat IP dan hanya ingin melakukan semuanya dengan Host: header maka solusi Anda jauh lebih mudah. Hati-hati dengan situs SSL / TLS. Anda perlu memastikan bahwa Indikasi Nama Server (TLS / SNI) berfungsi untuk basis pengguna Anda.
Sander Steffann
4

Ini terdengar seperti kesalahan resolusi nama IPv6 daripada kesalahan Apache. Periksa apakah nama tersebut terpecahkan dengan benar ke alamat tersebut.

user9517
sumber
3

Apakah nama tersebut sesuai dengan alamat IPv6 yang benar? Ini tampaknya menjadi masalah dalam resolusi domain.

Martin Vejmelka
sumber