Como inverter o proxy para diferentes locais, dependendo do subdomínio no Nginx?

6

Eu tenho vários subdomínios, todos apontando para uma máquina e um endereço IP. Nesta máquina, eu quero ter o nginx agindo como um proxy reverso, e dependendo de qual subdomínio foi usado para acessar a máquina, eu quero inverter o proxy para um servidor diferente. Todos os exemplos que vi do uso do nginx como proxy reverso usam location , mas, pelo que entendi, só funciona para o caminho, não para subdomínios diferentes. Como posso conseguir o que quero?

    
por markasoftware 01.02.2016 / 05:03

2 respostas

14

A menos que eu tenha interpretado mal sua pergunta: basta configurar blocos de servidores para cada subdomínio e definir o proxy reverso correto para a raiz desse subdomínio, ou seja, algo 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;
        }
 }
    
por 01.02.2016 / 11:11
3

praticamente da mesma maneira.

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

    
por 01.02.2016 / 06:37