Homelab e autohospedagem

Vários serviços atrás de um único servidor com Nginx Proxy Manager

Quando um mesmo servidor roda mais de um projeto, cedo ou tarde esbarra-se nas portas 80 e 443, que só um processo pode escutar. Um artigo do Habr, publicado no blog da Selectel, mostra passo a passo como resolver isso com o Nginx Proxy Manager.

O autor começa explicando o problema: portas privilegiadas, a regra de um ouvinte por porta, problemas de CORS quando frontend e backend ficam em portas separadas e a falta de HTTPS. Um proxy reverso resolve isso como intermediário, roteando o tráfego por domínio e caminho. Outra vantagem é que o firewall só precisa das portas 22, 80 e 443 abertas.

O ambiente de teste é um VDS com 2 vCPUs, 2 GB de RAM e 40 GB NVMe, com Ubuntu 24.04 e Docker do repositório oficial. A rede é criada com docker network create proxy e o contêiner jc21/nginx-proxy-manager é iniciado com volumes para dados e certificados. Gostei de que o painel administrativo, na porta 81, fique vinculado apenas a 127.0.0.1 e seja acessado por túnel SSH.

Em seguida, configura-se um host de proxy: o Forward Hostname recebe o nome do contêiner e o certificado SSL é associado na aba SSL. Para os testes usa-se o traefik/whoami. O caso em que a aplicação roda diretamente no host também é tratado: o endereço do gateway da rede Docker é obtido com docker network inspect, e o firewall é ajustado para que a aplicação não seja acessada contornando o proxy.

Há também ressalvas. Os exemplos misturam domínios diferentes e a imagem usa a tag latest, o que pode prejudicar a reprodutibilidade com o tempo. Mesmo assim, é um bom ponto de partida para quem quer rodar vários serviços em casa ou em um VDS sem editar configurações do nginx à mão.

Fonte: Habr (blog Selectel)

Comentários 0

Deixe o primeiro comentário, em qualquer idioma.

Entre para comentar