Esse artigo vai mostrar a maneira mais simples de fazer um proxy reverso com intuito de Port Forward utilizando o servidor de alta performance Nginx.
Site do Nginx: https://nginx.org/en/
Documentação: https://www.nginx.com/resources/wiki/
Vamos supor que nós criamos um serviço que rode na porta 1234 de uma máquina qualquer, e precisar fazer com o Nginx crie um proxy reverso da porta 80 para a porta 1234, fazendo com que o mesmo funcione como uma ponte de ligação entre o cliente e o serviço. Para exemplificar, vamos supor que tenhamos um servidor Apache 2.4 rodando na porta 1234 do servidor.
Instalação do Nginx
Para fazer a instalação do Nginx, você deverá acessar a documentação para mais detalhes. Neste exemplo eu estarei utilizando o Debian 8 Jessie para os testes, mas o procedimento de instalação será o mesmo para todas as distribuições Debian Like. Após a instalação vamos confirmar se o serviço está Ok.$ sudo apt-get install nginx $ sudo systemctl enable nginx $ sudo systemctl start nginx $ sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled) Active: active (running) since Sun 2017-05-21 20:12:44 GMT; 9min ago Main PID: 1642 (nginx) CGroup: /system.slice/nginx.service ├─1642 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ├─1643 nginx: worker process ├─1644 nginx: worker process ├─1645 nginx: worker process └─1646 nginx: worker process May 21 20:12:44 jessie systemd[1]: Started A high performance web server and a reverse proxy server. May 21 20:21:19 jessie systemd[1]: Started A high performance web server and a reverse proxy server. vagrant@jessie:~/teste$
Pra verificar se está tudo Ok, vamos acessar a porta 80 do servidor
Criando o proxy reverso
Vamos criar um arquivo chamado apache-proxy.conf onde vamos configurar nosso proxy reverso para fazer nosso redirect inicial do Nginx para o Apachesudo vim /etc/nginx/sites-available/apache-proxy.conf
/etc/nginx/sites-enabled/apache-proxy.conf
Como vamos utilizar a porta 80 do servidor, devemos deletar o arquivo de configuração /etc/nginx/sites-enabled/default que contém algumas configurações que ocupam essa porta. Em seguida vamos criar um link simbólico da do arquivo de configuração do proxy reverso para dentro da pasta sites-enabled antes de reiniciar o serviço.
$ sudo rm /etc/nginx/sites-enabled/default $ sudo ln -s /etc/nginx/sites-available/apache-proxy.conf /etc/nginx/sites-enabled/apache-proxy.conf $ sudo systemctl restart nginx
Agora com o serviço reiniciado, vamos acessar a porta 80 do servidor.
Essa é a forma mais simples de fazer o serviço de redirecionamento de portas entre serviços utilizando o Nginx.
Espero ter ajudado :)
olá, isso funcionou para mim.
ResponderExcluirMas, como faço para o nginx direcionar para a porta 1234 baseado em uma url.
Por exemplo todoas as chamadas de www.teste.com o nginx direcionar para a porta 1234?
Achou uma solução?
ExcluirEste comentário foi removido pelo autor.
ResponderExcluirTenho a mesmo dúvida, Tenho uma aplicação rodando na porta 10000, e outra na porta 10001, gostaria de ter um subdomínio apontando para o ip desta aplicação e que isso fosse filtrado e direcionado para a porta especifica.
ResponderExcluirHOST (sub1.meusite.com) redireciona para o servidor da aplicação na porta 10001
HOST (sub2.meusite.com) redireciona para o servidor da aplicação na porta 10000
Uma vez que o servidor de hospedagem do site é um e o servidor da aplicação é outro.
Veja se esse artigo aqui do blog não te ajudaria :)
Excluirhttp://www.nanoshots.com.br/2018/01/nginx-configurando-proxy-reverso-para.html