Vários hosts virtuais baseados em nome nginx não funcionam

Vários hosts virtuais baseados em nome nginx não funcionam

Eu tenho um docker nginx em execução com um host virtual que faz proxy reverso para uma configuração do Django na mesma ponte do docker (isso funciona). Estou tentando adicionar um segundo host virtual que serviria conteúdo HTML estático do próprio nginx. Estou tentando seguir exemplos na web, mas não consegui fazê-lo funcionar. Esperando que alguém possa identificar o que estou fazendo de errado.

Nos arquivos abaixo, alterei os nomes DNS para anonimato. Tanto abcde.wxyz.org quanto abcd.defgh.org resolvem para o mesmo IP e a resolução de nomes funciona bem. (a) Acessandohttps://abcd.defgh.org/(ou seja, o proxy) funciona bem. (b) Acessandohttp://abcde.wxyz.org/(a página estática), recebo um ERR_CONNECTION_REFUSED (c) Acessandohttps://abcde.wxyz.org/me leva a (a), o que também não deveria acontecer.

O que estou fazendo de errado?

Aqui está meu arquivo /etc/nginx/nginx.conf:

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;

    keepalive_timeout  65;

    include /etc/nginx/conf.d/*.conf;
}

No diretório /etc/nginx/conf.d/ existe um arquivo (chamado 'django.conf') que se parece com:

server {
  listen 80;
  server_name abcd.defgh.org;
  access_log  /var/www/logs/abcd.defgh.org.log;
  error_log  /var/www/logs/abcd.defgh.org.log error;
  root /var/www/abcd.defgh.org/public_html;
  index index.html index.htm;

  location / {
    try_files $uri $uri/ /index.html;
  }
}


server {
  listen 80;
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name abcde.wxyz.org;

  ssl_certificate /etc/ssl/certs/localhost.crt;
  ssl_certificate_key /etc/ssl/private/localhost.key;

  ssl_protocols TLSv1.2 TLSv1.1 TLSv1;


  location / {
    proxy_pass http://web:8000;
    }
}

'web' é resolvido pelo serviço de nomes do docker e funciona.

Não consigo obter logs de acesso ou logs de erros da janela de encaixe nginx para poder solucionar problemas ainda mais.

Responder1

Alarme falso. Acabou sendo um problema de ambiente docker. A janela de encaixe foi configurada com apenas a porta 443 sendo encaminhada para ela, e não a porta 80.

informação relacionada