Wie werden verschiedene Apps unter derselben Domäne konfiguriert?

Wie werden verschiedene Apps unter derselben Domäne konfiguriert?

Ich habe einen neuen Job und sie haben alles auf AWS eingerichtet. Wir haben einen Testserver, auf dem eine Reihe von Anwendungen gehostet werden.

wenn ich gehe zu

jenkins.example.com

Es geht an die Jenkins-Instanz, die wir ausführen.

wenn ich gehe zu

server.test.example.com

Anschließend geht es zur Testversion unserer Anwendung.

Wo wird dies konfiguriert (verschiedene Apps für verschiedene „Subdomains“)? Liegt es in Nginx oder in den DNS-Einträgen? Oder in beiden oder irgendwo anders?

(Ich bin mir nicht 100 % sicher, welche Begriffe ich für diese Frage verwenden sollte, z. B. „Subdomänen“. Sagen Sie mir gerne, was das ist.)

Antwort1

Es hängt davon ab, was Sie tun möchten.

Ihre Frage erfordert wahrscheinlich Nginx und keine hinzugefügten DNS-Einträge.

CNAME-DNS-Einträge können bestimmte Subdomains auf eine bestimmte Domain umleiten (aber nicht direkt auf eine bestimmte IP-Adresse oder einen Port auf einem Server). Sie benötigen nur dann einen CNAME, wenn Sie eine Subdomain zuordnen und die Anfrage auf einen anderen Domainnamen umleiten (d. h. subdomain.exampleone.com verweist auf exampletwo.com).

Nginx kann als Reverse-Proxy fungieren, indem es Subdomains übernimmt und sie entweder zu einem bestimmten Ordner/Dateien oder Port auf Ihrem Server umleitet. Dies ist entweder von Ihrem /etc/nginx/nginx.conf*, innerhalb des http {...}Blocks oder im /etc/nginx/sites-enabled/Verzeichnis konfigurierbar, wo Sie für jede Umleitung eine separate Datei erstellen können (wo http {...}ist impliziert).

*oder wo auch immer sich Ihr nginx-Verzeichnis befindet

Das richtige Format für eine solche Umleitung (zu einer Anwendung auf einem bestimmten Port) in Ihrem /etc/nginx/nginx.confist wie folgt:

server {
    # whether you type localhost or 127.0.0.1 or something else here 
    # depends on your servers /etc/hosts file, where you define how 
    # the server refers to itself
    listen       localhost:80;  
    server_name  mysubdomain.example.com;

    location / {
     proxy_pass              http://localhost:MYPORTNUMBER
     proxy_set_header        Host            $host;
     proxy_set_header        X-Real-IP       $remote_addr;
     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

Dabei ersetzen Sie MYPORTNUMBER durch den Port, auf dem die Anwendung ausgeführt wird. Der Vorgang zum Umleiten auf statische Dateien ist ähnlich, aber anstelle von proxy_pass würden Sie eingeben root /path/to/desired/folder.

Ich habe es nicht speziell ausprobiert, aber es sollte für mehrstufige Subdomänen wie server.test.ourdomain.comin Ihrem Beispiel funktionieren.

verwandte Informationen