Назад | Перейти на главную страницу

Применение директив местоположения к субдоменам и суб-субдоменам на NGINX

Я пытаюсь настроить сайт на 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, чтобы вытащить их для каждого сервера.