Wie kann man den Proxy je nach Subdomain in Nginx an verschiedene Stellen umkehren?

12

Ich habe mehrere Subdomains, die alle auf einen Computer und eine IP-Adresse verweisen. Auf diesem Computer soll nginx als Reverse-Proxy fungieren, und je nachdem, welche Subdomain für den Zugriff auf den Computer verwendet wurde, soll der Proxy auf einen anderen Server umgekehrt werden. Alle Beispiele, die ich für die Verwendung von Nginx als Reverse-Proxy-Verwendung gesehen habe location, funktionieren meines Wissens nur für den Pfad, nicht für verschiedene Subdomains. Wie kann ich erreichen, was ich will?

markasoftware
quelle
2
Dies könnte etwas zu weit gefasst sein. Können Sie mehr darüber posten, was Sie bereits versucht haben?
Will

Antworten:

25

Es sei denn, ich habe Ihre Frage völlig falsch verstanden: Sie richten einfach Serverblöcke für jede Unterdomäne ein und definieren den richtigen Reverse-Proxy für das Stammverzeichnis dieser Unterdomäne, dh etwas in der Art von:

 server {
        server_name subdomain1.example.com;
        location / {
            proxy_pass       http://hostname1:port1;
        }
 }
 server {
        server_name subdomain2.example.com;
        location / {
            proxy_pass       http://hostname2:port2;
        }
 }
HBruijn
quelle
Entschuldigung für die späte Antwort, aber ich habe es geschafft!
Markasoftware
3

So ziemlich genauso.

location /foo {
    rewrite ^/foo(.+)$ /$1 break;
    proxy_pass http://foo;
}

location /bar {
    rewrite ^/bar(.+)$ /$1 break;
    proxy_pass http://bar;
}
Drookie
quelle
1
Das war nicht genau das, wonach ich gesucht habe. Siehe die akzeptierte Antwort
markasoftware
1
Kauen und Verdauen ist die Belastung des Antragstellers, nicht meine.
Drookie