Защита паролем одного домена Nginx и избежание дублирования конфигурации

Защита паролем одного домена Nginx и избежание дублирования конфигурации

У меня есть 2 домена dev.domain.com и beta.domain.com. На данный момент у меня есть один раздел сервера (по умолчанию) с кучей определенных местоположений и правил. Теперь мне нужно защитить паролем beta.domain.com. Есть ли способ сделать это без создания дополнительного раздела сервера и, по сути, дублирования всех моих местоположений и других правил?

Вообще, я хотел бы узнать, как другие люди управляют сложными конфигурациями nginx. Они просто копируют разделы (дублируют) или как-то включают общие правила?

решение1

Самый простой способ совместного использования конфигурации между несколькими серверными блоками — использование директивы include. Например:

/etc/nginx/conf.d/mysite.inc:

#...locations and rules...

/etc/nginx/sites-available/dev.domain.com:

server {
    server_name dev.domain.com;
    root /path/to/root;
    include /etc/nginx/conf.d/mysite.inc;
}

/etc/nginx/sites-available/beta.domain.com:

server {
    server_name beta.domain.com;
    root /path/to/root;
    include /etc/nginx/conf.d/mysite.inc;
    location / {
        auth_basic "Authentication Required";
        auth_basic_user_file  /path/to/authfile;
    }
}

Связанный контент