Mini-Tutorial / How to: Reverse Proxy unter Unraid

  • hast du dann die Default einfach gelöscht oder wie gehst du sicher, dass die einzelnen Dateien bei den Samples genommen werden ?

    Ich arbeite nur mit Subdomains und habe die im Letsencrypt docker vordefiniert. Der nimmt dann automatisch die korrekte .conf passend zur subdomain.

    Nvidia Shield TV Pro
    Server: Intel Core i5-11400 CPU @ Gigabyte H510M S2H V3 Intel H470 | 3x 8TB, 4x6TB, 2x1TB Cachepool | 2x16GB DDR4-3200 | unRAID 6.12.13 | Emby | Unifi | Teamspeak | Swag | DDclient | Heimdall | PiHole | Vaultwarden | RustDesk Server

  • zum HSTS-Problem - das habe ich gestern auch erst gelöst. M.M.n. ist die anleitung vielleicht veraltet, aber ich habe "Strict-Transport-Security" in der ssl.conf in nginx aktiviert...

    Verstehe jetzt nicht wie genau du das Problem gelöst hast, wie sieht deine config aus ? Hast du meine genannten Zeilen einfach eingefügt?


    Zitat von justray2k

    Ich arbeite nur mit Subdomains und habe die im Letsencrypt docker vordefiniert. Der nimmt dann automatisch die korrekte .conf passend zur subdomain.

    Kannst du mir bitte auch deine Einstellungen zeigen?

    Meine Konfig

    Spoiler anzeigen

    Server:

    • Intel Pentium G4560 2x 3.50GHz
    • Gigabyte GA-B250M-DS3H Intel B250
    • 16 GB RAM DDR4
    • SSD Cache
    • HDDs
    • unRAID mit der aktuellsten Stable-Version


    Kodi:

    • Nvidia Shield TV (2017)
    • KODi immer mit der aktuellsten Stable-Version
  • Die Anleitung funktioniert nach wie vor. Sowohl für Subdomains als auch für Subfolder (neben fail2ban einer der erheblichen Vorteile zum populär gewordenen nginx Proxy Manager).
    Ich habe das so immer noch laufen, lediglich die configs zu den einzelnen Diensten binde ich mittlerweile in der default.conf extern ein via include …

    Wenn ich helfen kann, gebt Bescheid …

    Cheers,
    hi2hello

  • Code
    location = / {
    		return 301;
    	}
    	location / {
    		include /config/nginx/proxy.conf;
    		proxy_pass https://192.168.0.99:1317/;
    	}

    Ist das das einzige was in deiner default steht und der Rest in den einzelnen samples ?

    Meine Konfig

    Spoiler anzeigen

    Server:

    • Intel Pentium G4560 2x 3.50GHz
    • Gigabyte GA-B250M-DS3H Intel B250
    • 16 GB RAM DDR4
    • SSD Cache
    • HDDs
    • unRAID mit der aktuellsten Stable-Version


    Kodi:

    • Nvidia Shield TV (2017)
    • KODi immer mit der aktuellsten Stable-Version
  • Nein, da steht noch eine Menge mehr drin.
    Anbei mal meine aktuelle und kommentierte default.conf (appdata/letsencrypt/nginx/site-confs/)

    Hinweis: Nach jeder Änderung der config muss der LetsEncrypt Docker neu gestartet werden. Ich habe beim Testen öfter Probleme mit dem Browser-Caching gehabt, den also bestenfalls ebenfalls vor jedem Test löschen!

  • Kannst du mir bitte auch deine Einstellungen zeigen?

    Nvidia Shield TV Pro
    Server: Intel Core i5-11400 CPU @ Gigabyte H510M S2H V3 Intel H470 | 3x 8TB, 4x6TB, 2x1TB Cachepool | 2x16GB DDR4-3200 | unRAID 6.12.13 | Emby | Unifi | Teamspeak | Swag | DDclient | Heimdall | PiHole | Vaultwarden | RustDesk Server

  • Wow danke euch, ich probiere es die Tage aus und berichte hier durch editieren des Beitrags!

    Meine Konfig

    Spoiler anzeigen

    Server:

    • Intel Pentium G4560 2x 3.50GHz
    • Gigabyte GA-B250M-DS3H Intel B250
    • 16 GB RAM DDR4
    • SSD Cache
    • HDDs
    • unRAID mit der aktuellsten Stable-Version


    Kodi:

    • Nvidia Shield TV (2017)
    • KODi immer mit der aktuellsten Stable-Version
  • Only Subdomains steht bei mir auf false, ich will auch subfolder ohne eigenes Zertifikat weiterreichen. Die Einstellung true macht nur dann Sinn, wenn Du für jeden von außen erreichbaren Docker eine eigene Subdomain mit eigenem Zertifikat bei LetsEncrypt anforderst.

    @justray2k Wo sind Deine PUID und Deine PGID-Variablen? Fehlen die oder sind sie unter den weiteren Einstellungen versteckt?

  • Jupp die stehen unter more settings. Hab ich nicht ausgeklappt. Sind auf 99 und 100. Müsste Standard sein.

    Nvidia Shield TV Pro
    Server: Intel Core i5-11400 CPU @ Gigabyte H510M S2H V3 Intel H470 | 3x 8TB, 4x6TB, 2x1TB Cachepool | 2x16GB DDR4-3200 | unRAID 6.12.13 | Emby | Unifi | Teamspeak | Swag | DDclient | Heimdall | PiHole | Vaultwarden | RustDesk Server

  • Nein, da steht noch eine Menge mehr drin.
    Anbei mal meine aktuelle und kommentierte default.conf (appdata/letsencrypt/nginx/site-confs/)

    Hinweis: Nach jeder Änderung der config muss der LetsEncrypt Docker neu gestartet werden. Ich habe beim Testen öfter Probleme mit dem Browser-Caching gehabt, den also bestenfalls ebenfalls vor jedem Test löschen!

    Kann es sein dass du irgendwo Klammern vergessen hast?
    Bekomme folgende Fehlermeldung:
    nginx: [emerg] unexpected "E" in /config/nginx/site-confs/default:114
    Dabei ist Zeile 114 der Inhalt mit ssl_ciphers

    @justray2k und @hi2hello könnt ihr beide bitte nochmal eure default config und eine beispielhafte subdomain conf zeigen ?

    Meine Konfig

    Spoiler anzeigen

    Server:

    • Intel Pentium G4560 2x 3.50GHz
    • Gigabyte GA-B250M-DS3H Intel B250
    • 16 GB RAM DDR4
    • SSD Cache
    • HDDs
    • unRAID mit der aktuellsten Stable-Version


    Kodi:

    • Nvidia Shield TV (2017)
    • KODi immer mit der aktuellsten Stable-Version

    Einmal editiert, zuletzt von Taobyebye (21. April 2020 um 09:37)

  • die default(unverändert, da war ich nie dran):

    Und hier eine Beispiel Proxy conf:

    Nvidia Shield TV Pro
    Server: Intel Core i5-11400 CPU @ Gigabyte H510M S2H V3 Intel H470 | 3x 8TB, 4x6TB, 2x1TB Cachepool | 2x16GB DDR4-3200 | unRAID 6.12.13 | Emby | Unifi | Teamspeak | Swag | DDclient | Heimdall | PiHole | Vaultwarden | RustDesk Server

  • Wenn ich das richtig sehe, nutzen @justray2k und @hi2hello verschiedene Vorgehensweisen, oder?
    Einmal wird in "proxy-confs" und einmal in "siteconfs" was geändert.

    Ich bin wie justray2k auch nach dem Youtube-Tutorial von spaceinvaderone vorgegangen (sehr penibel und immer wieder anschauen) und es hat bei mir sofort mit dem Abändern der Beispieldatei für nextcloud in "proxy-confs" und eine Subdomain funktioniert.

    Auch die Fehlerbereinigung in Nextcloud habe ich nach den Tuts von spaceinvaderone dann gemacht. Der einzige Unterschied war eben, dass ich eben HSTS in der ssl.conf aktiviert habe, indem ich die "'#" Auskommentierung rausgenommen habe.

    Meine nextcloud.subdomain.conf und proxy-confs verweist dann wiederum auf die ssl.conf

  • Kann es sein dass du irgendwo Klammern vergessen hast?

    Ja, tatsächlich. In Zeile 40 fehlt eine Klammer zum schließen, also }
    Nach der Einbindung der externen Configs und vor den Subdomains

    Habe es oben verbessert.

    könnt ihr beide bitte nochmal eure default config und eine beispielhafte subdomain conf zeigen ?


    Meine default.conf steht bereits oben, da fehlte wie gesagt nur die Klammer in Zeile 40, das ist aber oben nun korrigiert.
    Anmerkung: Die Ciphers hatte ich gelöscht. Da musst Du Deine eigenen einsetzen und natürlich die Platzhalter mit Deiner IP bzw. Domain und Subdomain dort füllen, wo notwendig.

    Ein Beispiel für eine proxy.conf hat Dir ja @justray2k bereits verlinkt

    Zeig mal Deine default, ich denke, das ist einfacher.

  • Wenn ich das richtig sehe, nutzen @justray2k und @hi2hello verschiedene Vorgehensweisen, oder?
    Einmal wird in "proxy-confs" und einmal in "siteconfs" was geändert.

    Ja, das stimmt. Das Vorgehen ist unterschiedlich.

    Aber das hat nur bedingt mit den beiden Dateien zu tun!!!
    Zur Erklärung: In der default.conf wird der Server für Reverse Proxy konfiguriert.
    In einer proxy.conf steht nur eine Konfiguration für eine IP > URL bzw. einen Container. Diese wird dann extern in die default.conf per include-Befehl geladen. Man könnte das genau so gut direkt in der default.conf machen, so wie in meinem Beispiel bei den Subdomains.
    Die Subfolder binde ich in meinen Beispiel extern ein, die Subdomains stehen direkt in der default.

    Verstanden?


    Die Konfiguration von @justray2k funktioniert nur mit Subdomains, nicht mit Subfoldern, das hat er mehrfach hier im Thread erwähnt.
    Ich weiß nicht, ob seine Konfiguration den Aufruf der unRaid WebGUI über den reverse Proxy zulässt, meine kann das.

    Ich beziehe mich auf meine Anleitung auf Seite 1. Andere Quellen können natürlich genutzt werden, eine Mischung ist aber wahrscheinlich wenig hilfreich.

  • Die Konfiguration von @justray2k funktioniert nur mit Subdomains, nicht mit Subfoldern, das hat er mehrfach hier im Thread erwähnt.
    Ich weiß nicht, ob seine Konfiguration den Aufruf der unRaid WebGUI über den reverse Proxy zulässt, meine kann das

    Meine kann das auch. Daher ja meine Unraid Subdomain ;)

    Nvidia Shield TV Pro
    Server: Intel Core i5-11400 CPU @ Gigabyte H510M S2H V3 Intel H470 | 3x 8TB, 4x6TB, 2x1TB Cachepool | 2x16GB DDR4-3200 | unRAID 6.12.13 | Emby | Unifi | Teamspeak | Swag | DDclient | Heimdall | PiHole | Vaultwarden | RustDesk Server

  • Ich habe es nun geschafft die Datei zu verkleinern und auszulagern.

    Meine default:

    Spoiler anzeigen


    nextcloud config:

    Spoiler anzeigen

    Versuche gerade noch durch eure einzelnen Config-Einträge durchzusteigen

    z.B. wozu das wirklich gebraucht wird:

    • ssl_session_cache shared:SSL:10m;
    • Spoiler anzeigen
    Spoiler anzeigen
    Bash
    location / {
    		try_files $uri $uri/ /index.html /index.php?$args =404;
    	}
    	location ~ \.php$ {
    		fastcgi_split_path_info ^(.+\.php)(/.+)$;
    		fastcgi_pass 127.0.0.1:9000;
    		fastcgi_index index.php;
    		include /etc/nginx/fastcgi_params;
    	}
    • auth_basic "Restricted";
    • auth_basic_user_file /config/nginx/.htpasswd;
    • proxy_pass ...
    • Spoiler anzeigen
    Spoiler anzeigen
    Code
    include /config/nginx/proxy.conf;
            resolver 127.0.0.11 valid=30s;
            set $upstream_bitwarden 192.168.10.10;
            proxy_pass http://$upstream_bitwarden:80;
            proxy_set_header Range $http_range;
            proxy_set_header If-Range $http_if_range;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";


    Zudem habe ich noch eine Frage zum GUI Zertifikat. Möchte die Unraid-GUI intern über https erreichen, nicht von außen. Habe dafür nie was gemacht, aber ein selbst-signiertes Zertifikat. Ich verstehe nicht wie ich ein Zertifikat von meinem Letsencryp-Container da automatisch einbinden kann.

    Meine Konfig

    Spoiler anzeigen

    Server:

    • Intel Pentium G4560 2x 3.50GHz
    • Gigabyte GA-B250M-DS3H Intel B250
    • 16 GB RAM DDR4
    • SSD Cache
    • HDDs
    • unRAID mit der aktuellsten Stable-Version


    Kodi:

    • Nvidia Shield TV (2017)
    • KODi immer mit der aktuellsten Stable-Version
  • Zudem habe ich noch eine Frage zum GUI Zertifikat. Möchte die Unraid-GUI intern über https erreichen, nicht von außen. Habe dafür nie was gemacht, aber ein selbst-signiertes Zertifikat. Ich verstehe nicht wie ich ein Zertifikat von meinem Letsencryp-Container da automatisch einbinden kann.

    Deine Web-UI läuft ohne SSL auf Port 80, Du berücksichtigst in Deiner config aber nur Port 443. Was soll also mit Anfragen auf Port 80 passieren? Diese sollen nach 443 weitergeleitet werden.

    Generell würde das in etwa so aussehen

    Code
    # redirect 80 to 443
    server {
        listen 80 default_server;
        return 301 https://$host$request_uri;
    }


    Mit Zertifikat dann so:

    Code
    ssl_certificate /crt/ssl.crt;
    ssl_certificate_key /crt/ssl.key;
    
    
    # redirect 80 to 443
    server {
            listen 80;
            return 301 https://$host$request_uri;
    }


    Soviel wenigsten zur Theroie.
    Ich weiß nämlich nicht, ob das ohne URL funktioniert, also nur auf IP Basis.
    Jedenfalls wüsste ich nicht wie.

  • Deine Web-UI läuft ohne SSL auf Port 80, Du berücksichtigst in Deiner config aber nur Port 443. Was soll also mit Anfragen auf Port 80 passieren? Diese sollen nach 443 weitergeleitet werden.
    Generell würde das in etwa so aussehen:

    Code
    # redirect 80 to 443
    server {
        listen 80 default_server;
        return 301 https://$host$request_uri;
    }


    Mit Zertifikat dann so:

    Code
    ssl_certificate /crt/ssl.crt;
    ssl_certificate_key /crt/ssl.key;
    
    
    # redirect 80 to 443
    server {
            listen 80;
            return 301 https://$host$request_uri;
    }

    Ich weiß aber nicht, ob das ohne URL funktioniert, also nur auf IP Basis. Musst Du mal testen.

    Unraid nimmt leider immer noch nur das selbstsignierte Zertifikat

    Meine Konfig

    Spoiler anzeigen

    Server:

    • Intel Pentium G4560 2x 3.50GHz
    • Gigabyte GA-B250M-DS3H Intel B250
    • 16 GB RAM DDR4
    • SSD Cache
    • HDDs
    • unRAID mit der aktuellsten Stable-Version


    Kodi:

    • Nvidia Shield TV (2017)
    • KODi immer mit der aktuellsten Stable-Version

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!