Я пытаюсь написать «поймать весь порт 80 и принудительно установить 443» для различных доменов и поддоменов, которые у нас есть. Для этого я пытаюсь использовать такой подстановочный знак:
server {
listen 80;
server_name *.ourdomain.com www.*.ourdomain.com *.anotherdomain.com www.*.anotherdomain.com
return 301 https://$server_name$request_uri;
}
Это написано в / etc / nginx / sites-available / default
. Я использую тот же самый фрагмент кода на трех серверах, на всех запущенных та же версия NGINX.
Вывод sudo nginx -v
: версия nginx: nginx / 1.11.5
на обоих серверах
Два из них работают без проблем, другой - нет. позвольте мне вообще запустить NGINX. Я получаю следующее:
nginx: [emerg] invalid server name or wildcard "www.*.ourdomain.com" on 0.0.0.0:80
Любые подсказки на этом конкретном сервере ведут себя иначе, чем другие, или как я могу вернуть его в строй?
Если вам нужна дополнительная информация, спросите, и я отредактирую вопрос.
Этот шаблон подстановки ( www. *. Ourdomain.com
является шаблоном) не считается допустимым в NGINX для значения директивы server_name
. Почему это сработало на одном сервере, с самого начала - загадка, которую я спишу на «глюки».
Процитирую Документацию NGINX о директиве server_name
( раздел называется «Имена серверов»), который конкретно относится к этому случаю, который вы упомянули:
Имена подстановочных знаков
Подстановочные имена могут содержать звездочку только в начале имени или конец, и только на точечной границе. Имена
www. *. Example.org
иw * .example.org
недопустимы. Однако эти имена можно указать используя регулярные выражения, например~ ^ www \ .. + \. example \ .org $
и~ ^ w. * \. Example \ .org $
. Звездочка может соответствовать нескольким частям имени. В name*. example.org
соответствует не толькоwww.example.org
, но иwww.sub.example.org
также.Специальное имя с подстановочными знаками в форме
.example.org
может использоваться для совпадают как точное имяexample.org
, так и имя подстановочного знака*. Example.org
.
В соответствии с документацией, вам нужно будет использовать обнаружение совпадений на основе регулярных выражений для таких совпадений домена / поддомена.