Для начала, я немного новичок в nginx и немного заблудился ... К сожалению, я не нашел никакого решения для этого, так что вот моя проблема. Если это дубликат уже существующего вопроса, прошу прощения, и я был бы очень рад увидеть ответ.
Я создаю свой самый первый сервер nginx, и у меня есть два доменных имени, у одного из них много поддоменов, и я хочу установить перенаправление SSL для всех них. Проблема в том, что он работает только один раз с прослушиванием IPv6 (здесь, в конфигурации по умолчанию), и nginx не запускается, если я помещаю ту же конфигурацию в другие поддомены (каждый поддомен имеет свой собственный файл конфигурации сервера со своим собственным 80 → 443 перенаправление сервера).
server {
listen 443;
listen [::]:443;
## All the config and stuff
}
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name www.mydomainna.me mydomainna.me;
rewrite ^ https://$server_name$request_uri? permanent;
}
Это файл конфигурации по умолчанию, и он работает как шарм.
Однако и это то, что меня беспокоит, заключается в том, что в этой точно такой же конфигурации (за исключением default_server) для каждого отдельного поддомена и моего второго имени домена я должен удалить IPv6 или nginx, которые не хотят запускаться.
server {
listen 443;
listen [::]:443;
## All the config and stuff
}
server {
listen 80;
server_name subdomain.mydomainna.me;
rewrite ^ https://$server_name$request_uri? permanent;
}
Итак, мой вопрос: как я могу сказать, что нужно слушать IPv6 для всех моих других файлов конфигурации?
Прошу прощения, если я не объяснил свой вопрос адекватным образом, и если у кого-то из вас есть решение, спасибо.
В соответствии с эта страница строка ниже указывает Nginx прослушивать порт 80 как для IP4, так и для IP6.
listen [::]:80 default_server;
У вас есть две директивы, говорящие Nginx о прослушивании порта 443, поэтому вы получаете дублирующееся сообщение прослушивания. Просто удалите первую строку ниже, и она должна работать.
listen 443;
listen [::]:443;
Обратите внимание, что я ничего не знал о Nginx IP6, пока не провел 2 минуты в Google. Это решение было обнаружено в результате очень небольшого количества исследований.