Schützen Sie eine Domäne mit einem Nginx-Passwort und vermeiden Sie die Duplizierung von Konfigurationen

Schützen Sie eine Domäne mit einem Nginx-Passwort und vermeiden Sie die Duplizierung von Konfigurationen

Ich habe 2 Domänen: dev.domain.com und beta.domain.com. Im Moment habe ich einen Serverabschnitt (Standard) mit einer Reihe spezifischer Standorte und Regeln. Jetzt muss ich beta.domain.com mit einem Passwort schützen. Gibt es eine Möglichkeit, dies zu tun, ohne einen zusätzlichen Serverabschnitt zu erstellen und im Wesentlichen alle meine Standorte und anderen Regeln zu duplizieren?

Generell würde ich gerne wissen, wie andere Leute komplexe Nginx-Konfigurationen verwalten. Kopieren sie einfach Abschnitte (duplizieren sie) oder schließen sie irgendwie gemeinsame Regeln ein?

Antwort1

Der einfachste Weg, eine Konfiguration zwischen mehreren Serverblöcken zu teilen, ist die Verwendung der Include-Direktive. Zum Beispiel:

/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;
    }
}

verwandte Informationen