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.