Apache двойного стека

У меня есть сервер Ubuntu 12.04 со многими адресами IPv4 и/64 адресов IPv6. У меня есть он отвечающий на его адреса IPv6 с ping6. Я хотел бы, чтобы домены, размещенные на сервере, пошли двойной стек, таким образом, поддерживающие IPv6 посетители смогут получить доступ к его сайтам по IPv6, и все остальные будут использовать IPv4.

Вот соответствующие части моей конфигурации Apache как есть теперь:

ports.conf:

NameVirtualHost 199.192.201.82:80
Listen 199.192.201.82:80
Listen [2607:ff50:0:21::2]:80

httpd.conf:

<VirtualHost 199.192.201.82:80>
    ServerName  cdc.nexussl.net

    DirectoryIndex index.php
    DocumentRoot /var/www

    LogLevel warn
    ErrorLog  /var/www/error.log
    CustomLog /var/www/access.log combined
</VirtualHost>

<VirtualHost 199.192.201.82:80>
    ServerName  ipv6.nexussl.net

    DirectoryIndex index.php
    DocumentRoot /var/www

    LogLevel warn
    ErrorLog  /var/www/error.log
    CustomLog /var/www/access.log combined
</VirtualHost>

<VirtualHost 199.192.201.82:80>
    ServerName  dual.nexussl.net

    DirectoryIndex index.php
    DocumentRoot /var/www

    LogLevel warn
    ErrorLog  /var/www/error.log
    CustomLog /var/www/access.log combined
</VirtualHost>

cdc.nexussl.net имеет запись, указывающую 199.192.201.82, ipv6.nexussl.net имеет запись AAAA, указывающую 2607:ff50:0:21:: 2, и dual.nexussl.net имеет и A и запись AAAA.

С той установкой IPv4 хорошо работает (Они должны все отобразить страницу "You look lost"), но посещение ipv6.nexussl.net или dual.nexussl.net от способной к IPv6 машины возвращается

Not Found
The requested URL / was not found on this server.
Apache/2.2.22 (Ubuntu) Server at ipv6.nexussl.net Port 80

dual.nexussl.net работает правильно над соединением только для IPv4. В конечном счете я хотел бы, чтобы все сайты были созданы в DNS как dual.nexussl.net, и с A и с записями AAAA.

В конфигурации Apache я не могу просто использовать Listen 80, потому что другие приложения на том сервере используют порт 80 на другом дюйм/с. Apache должен только использовать 199.192.201.82 насколько IPv4 идет.

До IPv6 я должен дать каждому сайту его собственный адрес IPv6, и они просто совместно используют один IPv4? Я чувствую, что это могло получить грязный список адреса IPv6 в ports.conf для каждого сайта. Даже если у меня есть они все, совместно используют адрес IPv6, как я заставляю Apache служить сайтам правильно по IPv6?

2
задан 27 November 2012 в 06:15

1 ответ

Во-первых, ваши записи AAAA должны указывать на ваш IPv6-адрес, а не на 199.192.201.82 (что технически невозможно, поэтому я не удивлюсь, что это опечатка).

Вот правильная конфигурация:

ports.conf:

Listen 199.192.201.82:80
NameVirtualHost 199.192.201.82:80

Listen [2607:ff50:0:21::2]:80
NameVirtualHost [2607:ff50:0:21::2]:80

httpd.conf:

<VirtualHost 199.192.201.82:80>
    ServerName  cdc.nexussl.net

    DirectoryIndex index.php
    DocumentRoot /var/www

    LogLevel warn
    ErrorLog  /var/www/error.log
    CustomLog /var/www/access.log combined
</VirtualHost>

<VirtualHost [2607:ff50:0:21::2]:80>
    ServerName  ipv6.nexussl.net

    DirectoryIndex index.php
    DocumentRoot /var/www

    LogLevel warn
    ErrorLog  /var/www/error.log
    CustomLog /var/www/access.log combined
</VirtualHost>

<VirtualHost 199.192.201.82:80 [2607:ff50:0:21::2]:80>
    ServerName  dual.nexussl.net

    DirectoryIndex index.php
    DocumentRoot /var/www

    LogLevel warn
    ErrorLog  /var/www/error.log
    CustomLog /var/www/access.log combined
</VirtualHost>
0
ответ дан 27 November 2012 в 06:15

Другие вопросы по тегам:

Похожие вопросы: