Guia completo para construir um proxy reverso Nginx seguro
Criar um proxy reverso seguro, confiável e escalável é crucial para empresas e profissionais de TI que gerenciam sites de alto tráfego ou aplicativos complexos. O Nginx, um servidor web e proxy reverso de código aberto, é uma solução poderosa para roteamento, otimização e proteção do tráfego para seus serviços de back-end. Neste guia, explicaremos o processo de configuração de um proxy reverso robusto usando o Nginx no Ubuntu 24.04, abordando etapas críticas como criptografia TLS, limitação de taxa e integração com o Cloudflare.
Se você gerencia sites de nível empresarial, plataformas de comércio eletrônico ou servidores de mídia, este guia permitirá que você melhore o desempenho, garanta o tempo de atividade e proteja sua infraestrutura contra vulnerabilidades.
O que é um proxy reverso Nginx?
Um proxy reverso Nginx atua como um servidor intermediário entre clientes e serviços de back-end. Ele encaminha as solicitações dos clientes para o servidor de back-end apropriado, otimizando a distribuição de carga, aumentando a segurança e habilitando recursos como cache, terminação SSL e filtragem de tráfego. Essa configuração é particularmente útil para hospedar servidores de mídia, aplicativos multisite e serviços atrás de firewalls.
sbb-itb-59e1987
Por que você precisa de um proxy reverso
Um proxy reverso oferece vários benefícios importantes:
- Segurança aprimorada: Oculta os IPs dos servidores de backend e habilita a criptografia via TLS/SSL.
- Balanceamento de carga: Distribui o tráfego uniformemente entre vários servidores de backend.
- Otimização: Reduz a latência e melhora a eficiência dos recursos.
- Escalabilidade: Facilita o gerenciamento de cenários de alto tráfego.
- Facilidade de gerenciamento: Simplifica a configuração de vários serviços de backend por trás de um domínio unificado.
Neste tutorial, demonstraremos como:
- Configure o Nginx como um proxy reverso.
- Proteja sua configuração com os certificados TLS da Let's Encrypt.
- Configure otimizações avançadas, como limitação de taxa e encaminhamento de solicitações.
- Integre o Cloudflare para ignorar as restrições de porta do ISP.
Etapa 1: Instalando o Nginx e o Certbot no Ubuntu 24.04
Atualize seu sistema
Antes de instalar qualquer software, certifique-se de que seu sistema esteja atualizado:
sudo apt update && sudo apt upgrade Instalar Nginx e Certbot
Use os seguintes comandos para instalar o Nginx e o Certbot com o plugin Nginx:
sudo apt install nginx -y sudo apt install certbot python3-certbot-nginx -y Verificar instalação
Confirme se o Nginx está em execução:
sudo systemctl status nginx Para testar o acesso, determine o endereço IP do seu servidor:
ip a Acesse o endereço IP em um navegador. Se for bem-sucedido, você verá a página de boas-vindas padrão do Nginx.
Etapa 2: Configurando regras de firewall
Habilitar Firewall Descomplicado (UFW)
O UFW permite que você gerencie regras de firewall facilmente:
sudo ufw permitir 'Nginx Full' sudo ufw permitir OpenSSH sudo ufw ativar Verifique o status do seu firewall para garantir que as portas corretas estejam abertas:
status do sudo ufw Etapa 3: Configurando a configuração do proxy Nginx
Criar arquivos de configuração personalizados
Para maior flexibilidade e segurança, use arquivos de snippet para armazenar configurações específicas. Crie os seguintes arquivos:
- Cabeçalhos de segurança:
Defina cabeçalhos de segurança para aumentar a proteção:sudo nano /etc/nginx/snippets/security-headers.confadicionar_cabeçalho X-Frame-Options "MESMA ORIGEM"; adicionar_cabeçalho X-Content-Type-Options "nosniff"; adicionar_cabeçalho X-XSS-Protection "1; modo=bloco"; - Configurações de proxy:
Otimize fluxos longos e evite respostas lentas:sudo nano /etc/nginx/snippets/proxy.conftempo limite de conexão do proxy 60s; tempo limite de envio do proxy 60s; tempo limite de leitura do proxy 60s; - Limites de taxa:
Mitigar solicitações excessivas:sudo nano /etc/nginx/snippets/rate-limit.conflimit_req_zone $binary_remote_addr zona=meulimite:10m taxa=10r/s;
Incluir Snippets na Configuração Principal
Edite a configuração principal do Nginx:
sudo nano /etc/nginx/nginx.conf Adicione o seguinte sob o http bloquear:
incluir /etc/nginx/snippets/*.conf; Reinicie o Nginx para aplicar as alterações:
sudo systemctl reload nginx Etapa 4: Configurando Proxy Reverso para um Serviço de Backend
Criar um Host Virtual
Crie um arquivo de configuração para seu serviço de backend:
sudo nano /etc/nginx/sites-available/jellyfin Exemplo de configuração para um servidor de mídia Jellyfin:
servidor { ouvir 80; nome_do_servidor jelly.seudominio.com; localização / { senha_do_proxy http://10.10.0.112:8096; incluir /etc/nginx/snippets/proxy.conf; } } Habilite o site criando um link simbólico:
sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/ Teste e recarregue o Nginx:
sudo nginx -t sudo systemctl reload nginx Etapa 5: Protegendo seu domínio com Let's Encrypt TLS
Para proteger seu domínio, use o Let's Encrypt para emitir certificados gratuitos:
sudo certbot --nginx -d jelly.seudominio.com O Certbot configura automaticamente o SSL no seu arquivo de site Nginx. Para garantir que os certificados sejam renovados automaticamente, verifique se o timer do systemd está ativo:
sudo systemctl list-timers | grep certbot Etapa 6: Integração do Cloudflare para segurança adicional e desvio de porta do ISP
Instalar Cloudflared
A Cloudflared cria um túnel seguro para rotear o tráfego através da Cloudflare, ignorando as restrições do ISP nas portas 80 e 443:
- Baixe o
.debpacote da página GitHub da Cloudflare. - Instale o pacote:
sudo dpkg -i cloudflared-version.deb
Configurar um túnel
Autentique com sua conta Cloudflare:
login do túnel Cloudflared Crie um novo túnel:
túnel cloudflared criar meu-túnel Edite o arquivo de configuração do Cloudflare:
sudo nano /etc/cloudflared/config.yml Exemplo de configuração:
túnel: meu-túnel arquivo de credenciais: /home/user/.cloudflared/my-tunnel.json entrada: - nome do host: jelly.seudominio.com serviço: http://localhost:8096 - serviço: http_status:404 Inicie e habilite o serviço de túnel:
sudo systemctl enable cloudflared sudo systemctl start cloudflared Principais conclusões
- Proxy reverso Nginx: Essencial para rotear o tráfego com segurança e otimizar os serviços de backend.
- Criptografia TLS: Use o Let's Encrypt para proteger seus domínios com certificados SSL gratuitos.
- Regras de firewall: Abra as portas necessárias para HTTP (80), HTTPS (443) e SSH (22).
- Otimização de Segurança: Implemente cabeçalhos e limitação de taxa para evitar ataques.
- Integração Cloudflare: Use túneis Cloudflared para hospedagem segura e amigável a ISPs.
- Automação: Os temporizadores do Systemd garantem que os certificados SSL sejam renovados automaticamente.
Conclusão
Configurar um proxy reverso Nginx seguro exige atenção aos detalhes e uma configuração cuidadosa, mas os benefícios compensam o esforço. Seja hospedando servidores de mídia como o Jellyfin ou gerenciando aplicativos corporativos, este guia fornece as ferramentas e o conhecimento necessários para construir um ambiente altamente seguro e eficiente. Com recursos como TLS, túneis Cloudflare e otimizações avançadas, sua infraestrutura está pronta para as demandas modernas.
Fonte: "Pare de Expor Seus Aplicativos! Crie um Proxy Reverso Nginx Seguro!" – KeepItTechie, YouTube, 19 de agosto de 2025 – https://www.youtube.com/watch?v=MzbhS2S7H_g
Uso: Incorporado para referência. Citações breves usadas para comentários/revisões.
Postagens de blog relacionadas
- Dominando as configurações do Nginx para desempenho ideal do servidor web
- Dominando a configuração do NGINX: como a Serverion garante o sucesso da hospedagem web B2B
- Retrocesso na configuração do NGINX: a Serverion revive a arte perdida do ajuste de cache de proxy
- A Fronteira Esquecida da Configuração NGINX: O Mergulho da Serverion no Microcaching FastCGI