Nginx :: Configurando proxy reverso para multiplos servers baseados no dominio

Share:
Créditos: SeeFromTheSky


Hoje vamos voltar a falar um pouco do nosso amigo Nginx, dessa vez solucionando uma duvida bem grande do pessoal:

"Como faço pra criar um proxy baseado no DNS da minha aplicação? Tenho X apps rodando no meu server, cada um em uma porta diferente, e queria cria um roteamento pro proxy entre esses serviços de acordo com o nome do domínio requisitado"

Bom, isso é bem simples de ser feito, e não foge muito do que já vimos nos outros posts sobre o tema. Então, vamos lá!


Exemplos

Imaginem o seguinte cenário:

APP1 rodando na porta 5000 com o endereço app1.com.br
APP2 rodando na porta 6000 com o endereço app2.com.br

Instalando o Nginx 

A instalação do Nginx é feita pelo gerenciador de pacotes da sua distribuição. 

sudo apt-get install nginx -y
sudo yum install nginx -y



Criando o proxy baseado no dominio

Configurando o APP1

Vamos criar um arquivo chamado app1.conf dentro da pasta sites-enabled.
Dentro dele vamos aplicar uma server configuration do Nginx da forma mais simples possível especificando o server_name como app1.com.br, e aplicando o proxy_pass do root location para o endereço http://127.0.0.1:5000, onde está rodando nosso app1. Nada mais que isso. 
vim /etc/nginx/sites-enabled/app1.conf


Configurando o APP2

Vamos repetir o que fizemos no APP1 agora dentro do arquivo app2.conf. Nele vamos trocar nosso server_name para app2.com.br e o proxy_path para o endereço http://127.0.0.1:6000, onde está rodando nosso app2.
vim /etc/nginx/sites-enabled/app2.conf


Reiniciando o serviço do Nginx

Vamos reiniciar o serviço do Nginx pra validar as configurações que acabamos que criar.

sudo service nginx restart

Agora testando via browser, podemos validar se o proxy já está funcionando.




Espero ter ajudado :)

2 comentários:

  1. Showww !! Gostaria de acrescentar que caso esteja usando docker, existe uma imagem a qual gera as configurações automaticamente, também há a possibilidade de você fazer alterações no template para configurações específicas do seu proxy reverso.

    https://github.com/jwilder/nginx-proxy

    ResponderExcluir