Por que meu host virtual nginx dentro do docker não funciona?

1

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.

    
por Krystian 28.12.2017 / 23:48

0 respostas

Tags