Jak odwrócić proxy do różnych miejsc w zależności od poddomeny w Nginx?

14

Mam wiele subdomen, z których wszystkie wskazują na jeden komputer i jeden adres IP. Na tym komputerze chcę, aby nginx działał jako odwrotny serwer proxy i zależnie od tego, która subdomena została użyta do uzyskania dostępu do komputera, chcę, aby odwrócił serwer proxy na inny serwer. Wszystkie przykłady użycia nginx jako odwrotnego użycia proxy location, ale rozumiem, że działa tylko dla ścieżki, a nie dla różnych poddomen. Jak mogę osiągnąć to, czego chcę?

markasoftware
źródło
2
To może być trochę za szerokie. Czy możesz napisać więcej o tym, czego już próbowałeś?
Czy

Odpowiedzi:

27

Chyba że całkowicie błędnie odczytałem twoje pytanie: po prostu konfigurujesz bloki serwera dla każdej subdomeny i definiujesz prawidłowe odwrotne proxy dla katalogu głównego tej subdomeny, tj. Coś w stylu:

 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
źródło
Przepraszam za spóźnioną odpowiedź, ale udało mi się!
markasoftware
3

Prawie w ten sam sposób.

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

location /bar {
    rewrite ^/bar(.+)$ /$1 break;
    proxy_pass http://bar;
}
Drookie
źródło
1
Nie tego dokładnie szukałem. Zobacz zaakceptowaną odpowiedź
markasoftware
1
Żucie i trawienie to ciężar żądającego, a nie mój.
drookie