¿Cómo invertir el proxy a diferentes lugares dependiendo del subdominio en Nginx?

13

Tengo múltiples subdominios, todos apuntando a una máquina y una dirección IP. En esta máquina, quiero que nginx actúe como un proxy inverso y, según el subdominio que se utilizó para acceder a la máquina, quiero que invierta el proxy en un servidor diferente. Todos los ejemplos que he visto de usar nginx como un uso de proxy inverso location, pero entiendo que solo funciona para la ruta, no para diferentes subdominios. ¿Cómo puedo lograr lo que quiero?

markasoftware
fuente
2
Esto podría ser un poco demasiado amplio. ¿Puedes publicar más sobre lo que ya has probado?
Será

Respuestas:

27

A menos que haya leído completamente su pregunta: simplemente configure bloques de servidor para cada subdominio y defina el proxy inverso correcto para la raíz de ese subdominio, es decir, algo así como:

 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
fuente
Perdón por la respuesta tardía, ¡pero lo hice funcionar!
markasoftware
3

Más o menos de la misma manera.

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

location /bar {
    rewrite ^/bar(.+)$ /$1 break;
    proxy_pass http://bar;
}
drogadicto
fuente
1
Esto no era exactamente lo que estaba buscando. Ver la respuesta aceptada
markasoftware
1
Masticar y digerir es la carga del solicitante, no la mía.
drookie