Estou no processo de mover meus serviços de máquinas virtuais para contêineres docker. Eu movi vários dos meus aplicativos da web, confirmei que eles estavam funcionando e finalmente decidi mover meu nginx.
Depois de mover o nginx para o docker, nenhuma das minhas aplicações web responde. Confirmei que os hosts virtuais nginx não funcionam. Somente a configuração padrão, quando acessada usando o endereço IP, funciona. Parece que não receberia detalhes sobre o domínio usado na solicitação.
Uma amostra da minha configuração de host virtual:
server {
listen 80;
server_name my_domain.eu;
access_log /var/log/nginx/my_domain.eu.access.log;
error_log /var/log/nginx/my_domain.eu.error.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.88.196:8080;
}
error_page 500 502 503 504 /default.html;
location ~* /default\.(jpg|html)$ {
root /var/www/tomcat/errors;
}
}
Minha janela de encaixe é configurada com uma rede personalizada usando o driver macvlan. Todos os meus contêineres têm um endereço IP estático. Eu uso a imagem docker nginx padrão. Aqui está a parte relevante do arquivo docker-compose.yml
:
nginx:
container_name: nginx
image: nginx
volumes:
- nginx_config:/etc/nginx/
- nginx_static:/var/www/
networks:
pub_net:
ipv4_address: 192.168.88.193
ports:
- "80:80"
restart: on-failure
Como eu disse, eu confirmei o funcionamento do nginx verificando os logs e acessando o servidor usando o endereço IP.
Eu suspeito que eu tenha mexido em algo com a configuração do docker, já que as únicas alterações que fiz não foram alteradas na configuração do nginx. Eu ficaria grato por quaisquer dicas e sugestões sobre o que poderia dar errado e onde olhar.
Ao configurar o tráfego, sempre uso o endereço IP do contêiner, não a máquina host.