1. 1
  2. 2
  3. 3
  4. 4

# конспект · шаг 4 из 4

Конспект: приоритеты server_name

выжимка - её можно унести в заметки

Сайт выбирается по заголовку Host, и порядок здесь жёсткий.

Порядок приоритетов

1. точное имя           server_name shop.local;
2. маска в начале       server_name *.shop.local;
3. маска в конце        server_name shop.*;
4. регулярное выражение server_name ~^shop\d+\.local$;

Регулярка - последняя, а не первая. Любая маска побьёт любую регулярку.

Что полезно знать сразу

  • имён может быть несколько через пробел: server_name shop.local www.shop.local;
  • ~ начинает регулярку, ~* делает её нечувствительной к регистру;
  • в регулярке можно захватывать имя и использовать как переменную:
server_name ~^(?<tenant>.+)\.shop\.local$;
root /var/www/tenants/$tenant;
  • server_name ""; совпадает с запросами без заголовка Host.

Ловушки джокера

  • «Регулярка же точнее, значит сработает». При наличии *.shop.local регулярка ~^api\d+\.shop\.local$ не сработает никогда.
  • Звёздочка не заменяет пустоту: *.shop.local не совпадёт с shop.local. Оба имени пишут явно.
  • Забытый www - самая частая причина «на одном адресе сайт есть, на другом нет».

Комментарии

Пока нет комментариев. Будь первым!

Оставить комментарий

Комментарий появится после проверки. Email не публикуется. Войти, чтобы не вводить имя каждый раз.