Come invertire il proxy in luoghi diversi a seconda del sottodominio in Nginx?


13

Ho più sottodomini, tutti puntano su una macchina e un indirizzo IP. Su questa macchina, voglio che nginx funga da proxy inverso e, a seconda di quale sottodominio è stato usato per accedere alla macchina, voglio che inverta il proxy su un altro server. Tutti gli esempi che ho visto sull'uso di nginx come proxy inverso location, ma come ho capito, funziona solo per il percorso, non per diversi sottodomini. Come posso ottenere quello che voglio?


2
Questo potrebbe essere un po 'troppo ampio. Puoi pubblicare ulteriori informazioni su ciò che hai già provato?
Sarà il

Risposte:


27

A meno che non abbia frainteso completamente la tua domanda: devi semplicemente impostare i blocchi del server per ciascun sottodominio e definire il proxy inverso corretto per la radice di quel sottodominio, ovvero qualcosa sulla falsariga di:

 server {
        server_name subdomain1.example.com;
        location / {
            proxy_pass       http://hostname1:port1;
        }
 }
 server {
        server_name subdomain2.example.com;
        location / {
            proxy_pass       http://hostname2:port2;
        }
 }

Ci scusiamo per la risposta in ritardo, ma ho funzionato!
markasoftware

3

Praticamente allo stesso modo.

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

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

1
Questo non era esattamente quello che stavo cercando. Vedi la risposta accettata
markasoftware

1
Masticare e digerire è l'onere del richiedente, non il mio.
drookie
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.