Olá, Wheydson.
Tudo bem?
Sobre a sua dúvida no uso do NGINX com aplicações em containers Docker, você está no caminho certo ao pensar em usar o location
para direcionar para os containers. No entanto, é importante lembrar que ao usar localhost
no contexto de configuração do NGINX dentro de um container, você está se referindo ao próprio container onde o NGINX está rodando, e não ao host ou a outros containers.
Para que o NGINX possa comunicar com outros containers Docker, você deve usar os nomes dos serviços definidos no Docker Compose ou os endereços IP específicos dos containers, caso não esteja usando Docker Compose. Por exemplo, se você tem um serviço chamado frontend
e outro chamado backend
, sua configuração no NGINX poderia se parecer com isso:
location / {
proxy_pass http://frontend:80; # Supondo que o frontend esteja na porta 80
}
location /api {
proxy_pass http://backend:8080; # Supondo que o backend esteja na porta 8080
}
Essa configuração assegura que o tráfego destinado ao path /
seja redirecionado para o serviço frontend
, e o tráfego para /api
seja redirecionado para o serviço backend
.
Lembre-se de que cada serviço no Docker Compose cria uma rede interna com resolução de nome, facilitando essa comunicação entre containers. Se você não estiver usando Docker Compose, terá que configurar a rede Docker manualmente para permitir essa comunicação.
Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.