appplemac
@appplemac

Как заставить nginx работать по IPv6 с несколькими доменами?

Доброго времени суток.

Решил сделать доступ к паре своих доменов по IPv6. Для этого в nginx 0.7.67, собранный с подержкой IPv6, работающий на Debian, добавил такие строки, как советуют здесь, и теперь мой конфиг выглядит так:



<pre><code class="bash">server {

	listen 	        80 default;
	listen		[::]:80 default ipv6only=on;
	server_name 	a****y.ch;

	access_log 	/var/log/nginx/a****y.ch.access.log;

	location / {
		add_header Strict-Transport-Security max-age=31556926;
		rewrite     ^/(.*) https://a****y.ch/$1;
	}
}

server {

	listen 		443 default;
	listen		[::]:443 default ipv6only=on;
	server_name 	a****y.ch;
	ssl 		on;
	ssl_certificate 	/var/www/ssl.crt;
	ssl_certificate_key	/var/www/ssl.key;

	access_log /var/log/nginx/a****y.ch.https.access.log;
	
	location / {
		root 		/var/www/a****y.ch;
		index 		index.html;
	}
}

server {

	listen 		80;
	listen		[::]:80;
	server_name         ad.a****y.ch;

    access_log      	/var/log/nginx/ad.a****y.ch.https.access.log;

    location / {                
		add_header Strict-Transport-Security max-age=31556926;
		rewrite ^/(.*) https://ad.a****y.ch/$1;
	}
}

server {

	listen   		443;
	listen		[::]:443;
	server_name  	ad.a****y.ch;
	ssl			on;
	ssl_certificate	/var/www/ssl.crt;
	ssl_certificate_key	/var/www/ssl.key;
	

	access_log  /var/log/nginx/ad.a****y.ch.https.access.log;
	
	location / {
		root 		/var/www/ad.a****y.ch;
		index 		index.html;
	}

	location /download {
		alias 		/var/www/ad.a****y.ch;
		add_header 	Content-Disposition &quot;attachment&quot;;
	}
}




a****y.ch и ad.a****y.ch резолвятся в одни и те же IPv4 и IPv6 адреса.



С такой конфигурацией по IPv6 отдаётся только a****y.ch по http, то бишь ни a****y.ch по https, ни ad.a****y.ch в обоих вариациях по IPv6 не доступны.



Подскажите, что же я всё-таки делаю не так.

Заранее спасибо за ответы.
  • Вопрос задан
  • 6036 просмотров
Пригласить эксперта
Ответы на вопрос 4
KawaiDesu
@KawaiDesu
SSL включили на https-хостах?
ssl                                 on;
ssl_certificate                     /path/to/ssl.pem;
ssl_certificate_key                 /path/to/ssl.key;
ssl_protocols                       SSLv3 TLSv1; 
                                    #TLSv1 уязвим! Но версии выше поддерживаются клиентами слабо.

А вообще, выложили бы вы настоящий конфиг, затерев, например, домены и пути.
Ответ написан
Комментировать
sn00p
@sn00p
Операционная система какая? Если линукс, то достаточно
listen [::]:80;

можно убрать listen 80;, по дефолту ipv6 сокет принимает ipv4 трафик.

Да, выложите весь конфиг.
Ответ написан
Комментировать
@rPman
а что у вас резолвится по bin.mysite.com?
Ответ написан
Комментировать
KawaiDesu
@KawaiDesu
Во-первых, вы забыли удалить пути из конфига :) поэтому домен известен.
host ad.a****y.ch
сообщает мне, что домен не найден, проверяйте ДНС у регистратора.

Попробуйте сделать редирект с http на https хостов через
return        301 https://a****y.ch$request_uri;

Прямое обращение на https вообще не работает? Или какие-то ошибки выдаёт?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы