![]() |
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 :)
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.
ResponderExcluirhttps://github.com/jwilder/nginx-proxy
Parabens ! o site ficou muito bom.
ResponderExcluirRapaz, que facilidade! Simples e fantástico demais!
ResponderExcluirParabéns pelo belo artigo.
Tenho só umas dúvidas sobre utilização com HTTPS:
1 - Como faz pra HTTPS ?
2 - Como faz pra redirecionar para HTTPS se vier HTTP ?
Boa tarde,
ResponderExcluirTem como usar expressão regular no arquivo de configuração ?
por exemplo, suponhamos que existam vários subdominios que preisem ser acessados e esses subominios estejam em mais de um servidor do mesmo dominio:
*** Servidor 1 ***
site.com.br;
www.site.com.br;
app1.site.com.br;
app2.site.com.br;
*** Servidor 2 ***
app3.site.com.br;
*** Servidor 3 ***
app4.site.com.br;
Nao daria para usar o wildcard * por causa da distribuição dos subdominios em mais de um servidor... Se houvesse como usar expressão regular, evitaria a criação de vários arquivos de configuração, um para cada subdomínio que está no mesmo servidor.
Pessoal, no meu caso eu tenho dois servidores com NGinx funcionando 100%, no A tem meus sites e no B tem uma aplicação... Como faço para que ao digitar o subdominio app.meudominio.com abre a aplicação?
ResponderExcluir