Fehlerhafte Nginx-Config für Reverse Proxy

Zerstoerer

Lieutenant
Registriert
Okt. 2010
Beiträge
685
Hallo zusammen,

ich betreibe aktuell verschiedene Dienste unter verschiedenen Domains und habe diese hinter einem Reverse Proxy auf Basis von Nginx am laufen. Letzte Woche habe ich mal die Config aktualisiert, dabei habe ich auf nginxconfig.io zurückgegriffen. Mein Problem: Jetzt funktionieren manche Domains leider nicht mehr zu 100%, ich hoffe ihr könnt vielleicht ein Fehler in meiner Dokumentation finden.

NGINX:
# Generated by nginxconfig.io
#
user www-data;
pid /run/nginx.pid;
worker_processes auto;
worker_rlimit_nofile 65535;

events {
        multi_accept on;
        worker_connections 65535;
}

http {
        charset utf-8;
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        server_tokens off;
        log_not_found off;
        types_hash_max_size 2048;
        client_max_body_size 16M;

        # MIME
        include mime.types;
        default_type application/octet-stream;

        # logging
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log warn;

        # SSL
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:10m;
        ssl_session_tickets off;

        # Mozilla Modern configuration
        ssl_protocols TLSv1.3;

        # OCSP Stapling
        ssl_stapling on;
        ssl_stapling_verify on;
        resolver 1.1.1.1 1.0.0.1 8.8.8.8 8.8.4.4 208.67.222.222 208.67.220.220 valid=60s;
        resolver_timeout 2s;

        # load configs
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

NGINX:
server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        server_name wiki.domain.de;

        # SSL
        ssl_certificate /etc/letsencrypt/live/wiki.domain.de/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/wiki.domain.de/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/wiki.domain.de/chain.pem;

        # security
        include nginxconfig.io/security.conf;

        # logging
        access_log /var/log/nginx/wiki.domain.de.access.log;
        error_log /var/log/nginx/wiki.domain.de.error.log warn;

        # reverse proxy
        location / {
                proxy_pass http://192.168.132.3:32409;
                include nginxconfig.io/proxy.conf;
        }

        # additional config
        include nginxconfig.io/general.conf;
}

# subdomains redirect
server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        server_name *.wiki.domain.de;

        # SSL
        ssl_certificate /etc/letsencrypt/live/wiki.domain.de/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/wiki.domain.de/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/wiki.domain.de/chain.pem;

        return 301 https://wiki.domain.de$request_uri;
}

# HTTP redirect
server {
        listen 80;
        listen [::]:80;

        server_name .wiki.domain.de;

        include nginxconfig.io/letsencrypt.conf;

        location / {
                return 301 https://wiki.domain.de$request_uri;
        }
}

NGINX:
server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        server_name bw.domain.de;

        # SSL
        ssl_certificate /etc/letsencrypt/live/bw.domain.de/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/bw.domain.de/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/bw.domain.de/chain.pem;

        # security
        include nginxconfig.io/security.conf;

        # logging
        access_log /var/log/nginx/bw.domain.de.access.log;
        error_log /var/log/nginx/bw.domain.de.error.log warn;

        # reverse proxy
        location / {
                proxy_pass http://192.168.132.3:32400;
                include nginxconfig.io/proxy.conf;
        }

        # additional config
        include nginxconfig.io/general.conf;
}

# subdomains redirect
server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        server_name *.bw.domain.de;

        # SSL
        ssl_certificate /etc/letsencrypt/live/bw.domain.de/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/bw.domain.de/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/bw.domain.de/chain.pem;

        return 301 https://bw.domain.de$request_uri;
}

# HTTP redirect
server {
        listen 80;
        listen [::]:80;

        server_name .bw.domain.de;

        include nginxconfig.io/letsencrypt.conf;

        location / {
                return 301 https://bw.domain.de$request_uri;
        }
}

NGINX:
server {
        listen 443;# ssl http2;
        listen [::]:443;# ssl http2;

        server_name bs.domain.de;

        # SSL
        #;#ssl_certificate /etc/letsencrypt/live/bs.domain.de/fullchain.pem;
        #;#ssl_certificate_key /etc/letsencrypt/live/bs.domain.de/privkey.pem;
        #;#ssl_trusted_certificate /etc/letsencrypt/live/bs.domain.de/chain.pem;

        # security
        include nginxconfig.io/security.conf;

        # logging
        access_log /var/log/nginx/bs.domain.de.access.log;
        error_log /var/log/nginx/bs.domain.de.error.log warn;

        # reverse proxy
        location / {
                proxy_pass http://192.168.132.3:32412;
                include nginxconfig.io/proxy.conf;
        }

        # additional config
        include nginxconfig.io/general.conf;
}

# subdomains redirect
server {
        listen 443;# ssl http2;
        listen [::]:443;# ssl http2;

        server_name *.bs.domain.de;

        # SSL
        #;#ssl_certificate /etc/letsencrypt/live/bs.domain.de/fullchain.pem;
        #;#ssl_certificate_key /etc/letsencrypt/live/bs.domain.de/privkey.pem;
        #;#ssl_trusted_certificate /etc/letsencrypt/live/bs.domain.de/chain.pem;

        return 301 https://bs.domain.de$request_uri;
}

# HTTP redirect
server {
        listen 80;
        listen [::]:80;

        server_name bs.domain.de;

        include nginxconfig.io/letsencrypt.conf;

        location / {
                return 301 https://bs.domain.de$request_uri;
        }
}

NGINX:
# favicon.ico
location = /favicon.ico {
        log_not_found off;
        access_log off;
}

# robots.txt
location = /robots.txt {
        log_not_found off;
        access_log off;
}

# gzip
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml;

NGINX:
# ACME-challenge
location ^~ /.well-known/acme-challenge/ {
        root /var/www/_letsencrypt;
}

NGINX:
proxy_http_version      1.1;
proxy_cache_bypass      $http_upgrade;

proxy_set_header Upgrade                $http_upgrade;
proxy_set_header Connection             "upgrade";
proxy_set_header Host                   $host;
proxy_set_header X-Real-IP              $remote_addr;
proxy_set_header X-Forwarded-For        $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto      $scheme;
proxy_set_header X-Forwarded-Host       $host;
proxy_set_header X-Forwarded-Port       $server_port;

NGINX:
# security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

# . files
location ~ /\.(?!well-known) {
        deny all;
}

Aktuell habe ich folgende Probleme:
  1. Die Subdomain bs.domain.de von bookstack.conf wird nicht aufgelöst, d.h. wenn ich dessen Adresse aufrufe, werde ich immer zu bw.domain.de weitergeleitet.
  2. Die Subdomain wiki.domain.de hat irgendwelche Weiterleitungsprobleme. Ich kann die Login-Seite unter wiki.domain.de normal aufrufen, nach dem Login bleibt der Bildschirm weiß. Wenn ich mich ohne Proxy einlogge, kann ich ohne Probleme auf alles zugreifen.
Ich finde leider keinen Fehler mehr, deshalb hoffe ich, dass von euch jemand vielleicht noch etwas finden kann.

Wäre dankbar für ein paar Tipps.
 
Code:
listen 443;# ssl http2;
listen [::]:443;# ssl http2;
ändern in
Code:
listen 443 ssl http2;
listen [::]:443 ssl http2;

Und die SSL Zertifikate nicht auskommentieren. Dann könnte ein Problem behoben sein.
 
Das würde aber leider nicht funktionieren. Wie ich schon geschrieben habe, wird aus irgendeinem Grund von bs.domain.de zu bw.domain.de umgeleitet. Deshalb kann ich für bs.domain.de auch noch kein Zertifikat beantragen und muss den Teil noch auskommentiert lassen.
 
Afaik nimmt nginx die erste gestartete/gefundene Seite als Default/Fallback falls nix anderes konfiguriert ist was ich nicht sehe. Daher vermute ich, dass bw.domain.de als erstes startet, bs.domain.de aus noch ungeklärter Tatsache nicht startet und er deshalb dich zu bw. leitet.

Wie sehen denn deine DNS Einträge aus, nicht das da ein Eintrag fehlt oder fehlerhaft ist.
 
Zurück
Oben