Como Configurar Nginx como Reverse Proxy para Aplicações Docker

nginx

O Nginx é uma das ferramentas mais populares para atuar como reverse proxy, permitindo que você redirecione o tráfego para suas aplicações Docker de forma eficiente e segura.

No cenário de ambientes Dockerizados, é comum precisar de um proxy reverso para gerenciar múltiplas aplicações que estão rodando em containers. O Nginx facilita essa configuração com suas funcionalidades robustas de balanceamento de carga, segurança e gerenciamento de tráfego.

A seguir, explicaremos passo a passo como configurar o Nginx como reverse proxy para suas aplicações Docker. Vamos também considerar o uso de Docker Compose para orquestrar os containers, proporcionando uma configuração mais limpa e fácil de gerenciar.

Pré-requisitos

  • Docker e Docker Compose instalados na máquina.
  • Nginx instalado ou configurado em um container.
  • Ter uma aplicação Docker em funcionamento que você deseja expor por meio do Nginx.

Passo 1: Configuração do Nginx como Proxy Reverso

Primeiro, criaremos um arquivo de configuração para o Nginx, que indicará ao servidor para qual aplicação ele deve redirecionar o tráfego.

Crie o arquivo de configuração do Nginx:

sudo nano /etc/nginx/sites-available/reverse-proxy.conf

Dentro desse arquivo, adicione a configuração do proxy para sua aplicação Docker. Supondo que você tenha um container com a aplicação rodando localhost na porta 8000, domain exemplo.com. O arquivo deve conter:

server {
    listen 80;
    server_name exemplo.com;  # Substitua pelo seu domínio ou IP

    location / {
      proxy_pass http://localhost:8000;  # Endereço do container e porta
      proxy_set_header Host $host;
      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;
    }
}

Passo 2: Testando a Configuração do Nginx

Depois de configurar o arquivo, verifique se a sintaxe do Nginx está correta:

sudo nginx -t

Se tudo estiver correto, recarregue o Nginx para aplicar as mudanças:

sudo systemctl reload nginx

Agora, o Nginx está configurado para redirecionar as requisições para o container Docker que está rodando na porta 8000.

Saiba mais sobre:

Publicar comentário