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.conf
ist 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.com
in Ihrem Beispiel funktionieren.