Pular para o conteúdo

Nginx Proxy Manager gratuito vs pago: vale a pena investir em 2026?

Por Equipe Técnica AviraHost · 11 min de leitura · Atualizado em · Nginx Proxy Manager, proxy-reverso, Node.js, Docker, Let's Encrypt, Debian 13, segurança, AviraHost · 0

Nginx Proxy Manager gratuito e soluções de proxy reverso pagas diferem no que entregam além do roteamento: o NPM é open source (licença MIT), cobre SSL automático via Let's Encrypt, proxy reverso para aplicações Node.js e listas de acesso sem custo de licença, enquanto as opções pagas agregam WAF gerenciado, mitigação de DDoS em escala e suporte com SLA. Para um ou poucos VPS Linux, o gratuito costuma bastar — desde que combinado com firewall e hardening, porque sozinho ele não substitui um WAF completo. Abaixo, o comparativo honesto e a configuração segura para Node.js.

Nginx Proxy Manager gratuito vs pago: o que muda na prática

O custo real de um proxy reverso não está na licença, mas na infraestrutura e no tempo de operação. O Nginx Proxy Manager roda em um container Docker leve, então o investimento se resume ao VPS e à manutenção da sua equipe. Já as alternativas pagas vendem, principalmente, camadas que o NPM não possui nativamente. Veja o comparativo direto:

  • Licença: NPM é MIT, sem custo; pagos cobram por mês, por domínio ou por tráfego.
  • SSL: ambos automatizam certificados; o NPM usa Let's Encrypt com renovação integrada.
  • Proxy reverso para Node.js: NPM cobre HTTP, HTTPS e WebSockets; pagos adicionam balanceamento multi-região.
  • WAF e DDoS: NPM oferece apenas "Block Common Exploits" e ACLs por IP; pagos oferecem WAF gerenciado e mitigação em escala.
  • Suporte: NPM depende da comunidade; pagos incluem SLA e suporte comercial.
  • Manutenção: no NPM você atualiza a imagem Docker; no pago, o fornecedor cuida.

Quando o gratuito vale a pena: aplicações Node.js internas, APIs de pequeno e médio porte, projetos de agência com dezenas de domínios em um único servidor. Quando o pago vale a pena: exposição pública com histórico de ataques, requisito contratual de SLA, ou necessidade de balancear entre vários data centers. Se você ainda está decidindo o servidor, o guia sobre o que é e como funciona um servidor VPS ajuda a dimensionar recursos.

Pré-requisitos

  • VPS Linux com Debian 13 (ou Rocky Linux 10 / AlmaLinux 10) e acesso root ou sudo.
  • Docker Engine e plugin Docker Compose instalados (docker compose version deve responder).
  • Domínio com registro A apontando para o IP público do servidor (ex.: app.seudominio.com.br → 203.0.113.10).
  • Portas 80 e 443 liberadas no firewall; porta 81 restrita ao seu IP ou VPN.
  • Aplicação Node.js ouvindo em uma porta interna (ex.: 3000), já testada localmente.

Instalar o Nginx Proxy Manager com Docker Compose no Debian 13

A instalação do painel de proxy reverso é feita inteiramente em containers, o que facilita atualização e rollback. Crie a estrutura e o arquivo Compose:

mkdir -p /opt/npm && cd /opt/npm
cat > docker-compose.yml <<'EOF'
services:
  npm:
    image: jc21/nginx-proxy-manager:latest
    container_name: npm
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "127.0.0.1:81:81"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    networks:
      - proxy
networks:
  proxy:
    name: proxy
EOF
docker compose up -d
[+] Running 2/2
 ✔ Network proxy    Created
 ✔ Container npm    Started

Repare que a porta 81 foi publicada apenas em 127.0.0.1: o painel administrativo não fica exposto à internet. Para acessá-lo, use um túnel SSH a partir da sua máquina:

ssh -L 8181:127.0.0.1:81 [email protected]

Depois abra http://localhost:8181 no navegador. No primeiro login, o NPM exige a troca do usuário e senha padrão — faça isso imediatamente. Confirme que o container está saudável:

docker ps --filter name=npm --format "{{.Names}} {{.Status}}"
npm Up 2 minutes

Como configurar o Nginx Proxy Manager para aplicação Node.js

O ponto central da configuração de proxy reverso seguro é manter o Node.js fora do host público e alcançável apenas pela rede interna do Docker. Suba a aplicação na mesma rede proxy, sem publicar porta:

cd /opt/app
cat > docker-compose.yml <<'EOF'
services:
  api:
    build: .
    container_name: api-node
    restart: unless-stopped
    environment:
      - NODE_ENV=production
      - PORT=3000
    expose:
      - "3000"
    networks:
      - proxy
networks:
  proxy:
    external: true
EOF
docker compose up -d --build

Teste a conectividade interna a partir do container do NPM — se este comando responder, o proxy conseguirá alcançar a aplicação:

docker exec npm curl -s -o /dev/null -w "%{http_code}\n" http://api-node:3000/
200

Agora crie o Proxy Host no painel:

  1. Em Hosts → Proxy Hosts → Add Proxy Host, informe app.seudominio.com.br em Domain Names.
  2. Scheme http, Forward Hostname api-node, Forward Port 3000.
  3. Ative Websockets Support (essencial para Socket.IO) e Block Common Exploits.
  4. Na aba SSL, escolha "Request a new SSL Certificate", marque Force SSL, HTTP/2 Support e HSTS Enabled, aceite os termos do Let's Encrypt e salve.
  5. Na aba Advanced, adicione cabeçalhos úteis para o Node.js confiar no proxy:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 90s;

No código Node.js com Express, habilite app.set('trust proxy', 1) para que o IP real do cliente e o protocolo HTTPS sejam reconhecidos. Valide externamente:

curl -sI https://app.seudominio.com.br | head -n 5
HTTP/2 200
server: openresty
strict-transport-security: max-age=63072000; includeSubDomains; preload
content-type: application/json; charset=utf-8

Hardening: firewall, listas de acesso e o que o NPM não cobre

A camada de segurança do proxy reverso precisa de reforço no host. Restrinja o firewall para que apenas 80, 443 e SSH fiquem abertos:

apt install -y ufw
ufw default deny incoming
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
ufw status numbered
Status: active
[ 1] 22/tcp   ALLOW IN  Anywhere
[ 2] 80/tcp   ALLOW IN  Anywhere
[ 3] 443/tcp  ALLOW IN  Anywhere

Atenção: antes de ativar o UFW, confirme que a regra da porta SSH foi adicionada, ou você perderá o acesso ao servidor. Se isso acontecer, consulte o guia para solucionar problemas de acesso SSH no VPS Linux.

No painel, use Access Lists para proteger rotas administrativas do Node.js (ex.: /admin) com autenticação básica e restrição por IP. Lembre-se dos limites: o NPM não inspeciona payloads como um WAF, não mitiga DDoS volumétrico e não atualiza suas dependências Node.js. Mantenha npm audit na rotina e a imagem do NPM atualizada com docker compose pull && docker compose up -d. Se esses limites forem críticos para o seu negócio, é exatamente aí que a solução paga se justifica.

Problemas comuns e como resolver

Sintoma: erro 502 Bad Gateway ao acessar o domínio

Causa: o NPM não alcança o container Node.js — nomes diferentes, redes distintas ou aplicação ouvindo apenas em localhost dentro do container.
Solução: confira com docker network inspect proxy se ambos os containers estão na rede; no Node.js, use app.listen(3000, '0.0.0.0'). Repita o curl interno mostrado acima.

Sintoma: certificado Let's Encrypt falha com "Internal Error"

Causa: o DNS ainda não propagou, a porta 80 está bloqueada ou há outro serviço ocupando-a no host.
Solução: valide o registro A com dig +short app.seudominio.com.br, verifique a porta com ss -tlnp | grep ':80' e leia docker logs npm --tail 50. O guia de zona DNS com registros A, MX, CNAME e TXT ajuda a revisar a configuração.

Sintoma: WebSockets desconectam ou Socket.IO cai para polling

Causa: "Websockets Support" desativado no Proxy Host ou timeout de leitura curto.
Solução: ative a opção e adicione proxy_read_timeout 90s; na aba Advanced; ajuste conforme o intervalo de ping da sua aplicação.

Sintoma: Express registra sempre o IP interno do proxy

Causa: a aplicação não confia nos cabeçalhos X-Forwarded-*.
Solução: defina app.set('trust proxy', 1) e confirme que os cabeçalhos foram adicionados na configuração avançada do host.

Perguntas frequentes sobre Nginx Proxy Manager gratuito vs pago

O Nginx Proxy Manager é realmente gratuito?

Sim, o Nginx Proxy Manager é um projeto open source distribuído sob licença MIT, sem custo de licença. O único investimento real é a infraestrutura onde ele roda, como um VPS Linux com Docker, e o tempo de configuração e manutenção da sua equipe.

Como configurar o Nginx Proxy Manager como proxy reverso para uma aplicação Node.js?

Suba o Nginx Proxy Manager via Docker Compose, acesse o painel na porta 81, crie um Proxy Host apontando para o IP interno e a porta da aplicação Node.js (por exemplo, 3000), ative Websockets Support e Block Common Exploits e solicite um certificado Let's Encrypt na aba SSL com Force SSL e HTTP/2 habilitados. A aplicação Node.js deve ficar acessível apenas na rede interna do Docker ou em 127.0.0.1.

Vale a pena pagar por um proxy reverso em vez de usar o Nginx Proxy Manager?

Depende do cenário. Para um ou poucos VPS com aplicações Node.js, o Nginx Proxy Manager gratuito cobre SSL automático, proxy reverso e listas de acesso sem custo. Soluções pagas fazem sentido quando você precisa de WAF gerenciado, mitigação de DDoS em escala, suporte comercial com SLA ou balanceamento entre vários data centers.

O Nginx Proxy Manager protege a aplicação Node.js contra ataques?

Ele oferece uma camada básica de proteção: certificado TLS automático, bloqueio de exploits comuns, listas de acesso por IP e autenticação básica, além de esconder a porta da aplicação. Ele não substitui um firewall no servidor, atualizações da aplicação Node.js nem um WAF completo, por isso deve ser combinado com UFW ou nftables e boas práticas de hardening.

Preciso expor a porta 3000 do Node.js na internet ao usar o Nginx Proxy Manager?

Não. A prática segura é não publicar a porta 3000 no host ou publicá-la apenas em 127.0.0.1, deixando o Nginx Proxy Manager alcançar a aplicação pela rede interna do Docker. Assim, apenas as portas 80 e 443 ficam abertas ao público e a porta 81 do painel deve ser restrita por firewall ou VPN.

Conclusão

  • Comece com o Nginx Proxy Manager gratuito: para a maioria das aplicações Node.js em VPS, ele resolve SSL, roteamento e ACLs sem custo de licença.
  • Feche o perímetro: porta 81 só via túnel SSH ou VPN, Node.js sem porta publicada, UFW liberando apenas 80 e 443.
  • Migre para uma solução paga apenas quando WAF, mitigação de DDoS ou SLA passarem a ser requisitos reais do negócio — não por precaução genérica.

Leia também

Precisa de ajuda com Nginx Proxy Manager e Node.js?

Um VPS Linux com Docker é a base ideal para rodar o Nginx Proxy Manager e suas aplicações Node.js com isolamento e SSL automático. A AviraHost oferece servidores VPS com recursos dedicados e suporte para você colocar o proxy reverso em produção com segurança.

Conheça os planos de Servidor VPS da AviraHost


Esta resposta foi útil?