Mehrere virtuelle Hosts auf Basis von Nginx-Namen funktionieren nicht

Mehrere virtuelle Hosts auf Basis von Nginx-Namen funktionieren nicht

Ich habe einen Nginx-Docker mit einem virtuellen Host laufen, der einen Reverse-Proxy zu einem Django-Setup in derselben Docker-Bridge verwendet (das funktioniert). Ich versuche, einen zweiten virtuellen Host hinzuzufügen, der statische HTML-Inhalte von Nginx selbst bereitstellt. Ich versuche, Beispiele im Internet zu befolgen, habe es aber nicht zum Laufen gebracht. Ich hoffe, jemand kann erkennen, was ich falsch mache.

In den folgenden Dateien habe ich die DNS-Namen aus Gründen der Anonymität geändert. Sowohl abcde.wxyz.org als auch abcde.defgh.org werden auf dieselbe IP-Adresse aufgelöst, und die Namensauflösung funktioniert einwandfrei. (a) Zugriffhttps://abcd.defgh.org/(also der Proxy) funktioniert einwandfrei. (b) Der Zugriffhttp://abcde.wxyz.org/(die statische Webseite), erhalte ich eine ERR_CONNECTION_REFUSED (c) Beim Zugriffhttps://abcde.wxyz.org/bringt mich zu (a), was auch nicht passieren sollte.

Was mache ich falsch?

Hier ist meine Datei /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;
}

Im Verzeichnis /etc/nginx/conf.d/ gibt es eine Datei (mit dem Namen „django.conf“), die wie folgt aussieht:

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“ wird vom Docker-Namensdienst aufgelöst und funktioniert.

Ich kann anscheinend keine Zugriffs- oder Fehlerprotokolle vom Nginx-Docker abrufen, um das Problem weiter beheben zu können.

Antwort1

Falscher Alarm. Es stellte sich heraus, dass es sich um ein Problem in der Docker-Umgebung handelte. Der Docker wurde so eingerichtet, dass nur Port 443 weitergeleitet wurde, nicht aber Port 80.

verwandte Informationen