Я пытаюсь настроить сайт на NGINX, чтобы домен второго уровня был виден публично, но доступ к поддоменам ограничен. В основном dev.domain.com
должен быть ограничен моим IP, и staging.domain.com
ограничивается HTTP-аутентификацией. Я также хочу, чтобы те же ограничения применялись ко всем суб-поддоменам этих поддоменов.
Имя_сервера для каждого поддомена устанавливается с помощью специальный подстановочный знак, который, как я думал, повлияет на все домены в будущем (см. ниже). поэтому я установил директивы местоположения в серверном блоке для каждого поддомена; разрешить / запретить для server_name .dev.domain.com
и auth_basic для server_name .staging.domain.com
.
Он отлично работает для субдоменов, но я бы хотел, чтобы эти директивы также применялись ко всем субдоменам (т.е.site1.dev.domain.com
). Прямо сейчас мне нужно добавить директивы для каждого поддомена индивидуально.
Как мне применить эти директивы ко всем суб-поддоменам?
Вот настройка блока сервера для staging.domain.com
server {
listen 80;
listen [::]:80;
server_name .staging.domain.com;
root /home/forge/staging.domain.com/public;
Все, что вы помещаете в свой блок http, будет унаследовано всеми блоками вашего сервера. Затем вы можете при необходимости переопределить эти настройки на своих серверных блоках.
Или вы можете поместить общие настройки в другой файл, например auth.conf, и использовать директиву include, чтобы вытащить их для каждого сервера.