Один и тот же файл по умолчанию nginx работает на одном сервере, но не работает на другом?

Я пытаюсь написать «поймать весь порт 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

Любые подсказки на этом конкретном сервере ведут себя иначе, чем другие, или как я могу вернуть его в строй?

Если вам нужна дополнительная информация, спросите, и я отредактирую вопрос.

0
задан 18 September 2018 в 17:12
1 ответ

Этот шаблон подстановки ( 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 .

В соответствии с документацией, вам нужно будет использовать обнаружение совпадений на основе регулярных выражений для таких совпадений домена / поддомена.

1
ответ дан 4 December 2019 в 15:50

Теги

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