Недавно написал топик про поддержку IPv6 в Windows 7/Vista/XP (это тут). Захотелось сделать поддержку IPv6 на своём сервере, где хостируются сайты, в итоге вот что получилось.
Сервер у меня под FreeBSD, использовал HE.net для получения IPv6 адреса на сервере, вот конфиг настройки этого туннеля в /etc/rc.conf:
Теперь встал вопрос о поддержки веб-сервера, адресации IPv6. У меня используется связка nginx + apache 2.2, вот выдержка server в конфиге nginx:
Как видите, была добавлена строка listen [::]:80 default;. Это даст возможность вашему nginx слушать все IPv6 адреса.
По умолчанию такую запись можно добавить в одну секцию server. Подразумевается, наверное, то что в IPv6 каждый сайт будет на своём IPv6 адресе.
Для того, чтобы на каждом server {} был свой IPv6 адрес, нужно добавить listen [2001:470:1f04:***::3]:80. Естественно, цеплять такие адреса надо alias для вашего основного интерфейса.
Затем вам необходимо внести запись в ДНС ваших доменов, которые хостируются.
Запись я внёс такую:
Т.к. у меня все домены на одном сервере и я особо не заморачивался с выдачей каждому сайту IPv6, сделал просто:
IPv6 Network -----------> IPv6 ServerIP ---------> проксирование на 127.0.0.1 IPv4 (где крутится Apache с обычными настройками для IPv4).
Итого, прописав это, я получил доступность всех моих доменов из сети IPv6.
К каждому домену в ServerAlias апача прописал поддомен ipv6.имя_домера.ru. Ну и создал символьные ссылки для домена в своей конструкции (см root /usr/local/www/static/$host;). В этой папке у меня символьные ссылки для всех доменов и поддоменов на моём сервере.
P.S. Скорей бы многие хостинг провайдеры и хостинг панели стали поддерживать IPv6 из коробки. Большинство доменов могли бы работать и там и там, тогда и переход на IPv6 будет не столь болезненным.
P.S. Появился трафик IPv6 на сайтах, наверное, из-за добавление в каталоги сайтов, которые поддерживают IPv6.
Сервер у меня под FreeBSD, использовал HE.net для получения IPv6 адреса на сервере, вот конфиг настройки этого туннеля в /etc/rc.conf:
ipv6_gateway_enable="YES"
ipv6_enable="YES"
gif_interfaces="gif0"
gifconfig_gif0="ВАШ_IP_СЕРВЕРА 72.52.104.74"
ipv6_ifconfig_gif0="2001:470:1f04:***::2" #Выданный вам IPv6
ipv6_defaultrouter="2001:470:1f04:***::1" #Это адрес сервера HE.net в IPv6.
Теперь встал вопрос о поддержки веб-сервера, адресации IPv6. У меня используется связка nginx + apache 2.2, вот выдержка server в конфиге nginx:
server {
listen 80 default;
listen [::]:80 default;
server_name _;
location /nginx_status {
stub_status on;
access_log off;
allow all;
}
location / {
proxy_pass http://127.0.0.1:81;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_send_lowat 12000;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
location ~* \.(jpeg|jpg|gif|png|css|js|pdf|txt|tar|tar.gz|zip|ico|swf|rss)$ {
root /usr/local/www/static/$host;
access_log off;
expires off;
}
}
Как видите, была добавлена строка listen [::]:80 default;. Это даст возможность вашему nginx слушать все IPv6 адреса.
По умолчанию такую запись можно добавить в одну секцию server. Подразумевается, наверное, то что в IPv6 каждый сайт будет на своём IPv6 адресе.
Для того, чтобы на каждом server {} был свой IPv6 адрес, нужно добавить listen [2001:470:1f04:***::3]:80. Естественно, цеплять такие адреса надо alias для вашего основного интерфейса.
Затем вам необходимо внести запись в ДНС ваших доменов, которые хостируются.
Запись я внёс такую:
* IN AAAA 2001:470:1f04:***::2
Т.к. у меня все домены на одном сервере и я особо не заморачивался с выдачей каждому сайту IPv6, сделал просто:
IPv6 Network -----------> IPv6 ServerIP ---------> проксирование на 127.0.0.1 IPv4 (где крутится Apache с обычными настройками для IPv4).
Итого, прописав это, я получил доступность всех моих доменов из сети IPv6.
К каждому домену в ServerAlias апача прописал поддомен ipv6.имя_домера.ru. Ну и создал символьные ссылки для домена в своей конструкции (см root /usr/local/www/static/$host;). В этой папке у меня символьные ссылки для всех доменов и поддоменов на моём сервере.
P.S. Скорей бы многие хостинг провайдеры и хостинг панели стали поддерживать IPv6 из коробки. Большинство доменов могли бы работать и там и там, тогда и переход на IPv6 будет не столь болезненным.
P.S. Появился трафик IPv6 на сайтах, наверное, из-за добавление в каталоги сайтов, которые поддерживают IPv6.