У меня есть 2 домена dev.domain.com и beta.domain.com. На данный момент у меня есть одна серверная секция (по умолчанию) с кучей конкретных локаций и правил. Теперь мне нужно защитить паролем beta.domain.com. Есть ли способ сделать это, не создавая дополнительную секцию сервера и практически не дублируя все мое местоположение и другие правила?
В целом я хотел бы знать, как другие люди управляют сложными конфигурациями nginx. Они просто копируют разделы (дублируют) или как-то включают общие правила?
Самый простой способ поделиться конфигурацией между несколькими серверными блоками - использовать директиву 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;
}
}