Reverse Proxy für Docker-Nextloud & Photo Station funktioniert nicht

Status
Für weitere Antworten geschlossen.

maschbauer

Benutzer
Mitglied seit
07. Okt 2018
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,
ich schreibe aus einer gewissen Verzweiflung heraus, da ich seit Tagen immer wieder versuche mein Problem zu lösen, aber es irgendwie nicht funktionieren will.
Ich will auf meinem NAS Nextcloud in einem Docker Container und die Photo-Station von außen erreichbar machen.

Ich habe eine dyndns,domain.de Adresse über einen Service von Wircon, welcher auf meiner Fritzbox eingerichtet ist.
Jetzt möchte ich gerne über dyndns.domain.de/cloud die Nextcloud und über dyndns.domain.de/photo die Photo-Station erreichen können.

Da DSM das nicht über die Oberfläche unterstützt, habe ich folgendes Skript für nginx geschrieben, welches aber leider nicht funktioniert.

Rich (BBCode):
server {
     listen     443 ssl http2;
     listen [::]:443 ssl http2;
     server_name dyndns.domain.de;

     add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" always;

location /cloud/ {
                            proxy_connect_timeout 60;
                            proxy_read_timeout 60;
                            proxy_send_timeout 60;
                            proxy_intercept_errors off;
                            proxy_http_version 1.1;
                            proxy_set_header Host $http_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_pass http://127.0.0.1:8081/;
  }
 }

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name dyndns.domain.de;

    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" always;

    location /photo/ {

        proxy_connect_timeout 60;
        proxy_read_timeout 60;
        proxy_send_timeout 60;
        proxy_intercept_errors off;
        proxy_http_version 1.1;
        proxy_set_header Host $http_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_pass http://localhost:443/;
    }
}

Beim Aufrufen der Photo-Station kommt ein 404, beim Aufrufen von /cloud werde ich auf die Adresse /apps/files weitergeleitet, aber im Browserfenster ist auch nur eine 404-Seite.
Gehe ich den Weg über die DSM-Oberfläche kann ich ja allen Traffic über 443 auf den Docker-Container weiterleiten, dann klappt die Nextcloud und die Adresse sieht auch nach /apps/files/ aus. Was mache ich falsch? Ist da ein kompletter Denkfehler bzw. gibt es einen besseren Weg?
https://www.synology-forum.de/showt...y-von-aussen&highlight=nextcloud+docker+proxy
Im Thread oben stellt der Autor zu Beginn die gleiche Frage, löst das Problem dann aber anscheinend mit Subdomains. Davon kann ich prinzipiell auch genug erstellen, aber diese zeigen dann nur über eine Weiterleitung auf dyndns.domain.de/... auf meine dynamische IP. Insofern steht mir der Weg glaube ich nicht zur Verfügung. :/

Insofern, long story short: Sieht jemand in meinem conf-File einen Fehler? Die habe ich mir im Endeffekt aus dem kopiert, was die DS selbst anlegt. Nur die ssl_certificates konnte ich nicht nutzen, da diese gelöscht sind, wenn ich den Reverse-Proxy der DS lösche, um mein conf-File zu nutzen.

Rich (BBCode):
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name dyndns.domain.de;

    ssl_certificate /usr/syno/etc/certificate/ReverseProxy/bla/fullchain.pem;

    ssl_certificate_key /usr/syno/etc/certificate/ReverseProxy/bla/privkey.pem;

    add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload" always;

    location / {

        proxy_connect_timeout 60;

        proxy_read_timeout 60;

        proxy_send_timeout 60;

        proxy_intercept_errors off;

        proxy_http_version 1.1;

        proxy_set_header        Host            $http_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_pass http://localhost:8081;

    }

    error_page 403 404 500 502 503 504 @error_page;

    location @error_page {
        root /usr/syno/share/nginx;
        rewrite (.*) /error.html break;
        allow all;
    }

}

Vielen Dank schonmal für eure Tipps. Wahrscheinlich ist es im Endeffekt etwas simples, aber ich sehe gerade einfach den Wald vor lauter Bäumen nicht.

Gruß
Andreas
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Die Photo Station solltest du schon über dyn.domain.de/photo erreichen im Werkszustand.
Sobald du in Systemsteuerung > Netzwerk / Externer Zugriff / Anwendungsportal einstellen triffst kann das schon nicht mehr der Fall sein, wenn irgendwo explizit der Name dyn.domain.de als Hostname eingetragen ist.

Für deine NC im Docker.
Einfach ein Reverse Proxy mit dyn-cloud.domain.de auf localhost und port wo der Docker-Container lauscht. Fertig.
Extra Subdomain deshalb, weil andernsfalls das Konstrukt mit /photo nicht mehr erreichbar wäre.
Die dyn-cloud.domain.de setzt du in den DNS Einstellungen bei deinem Domain Provider per CNAME auf dyn.domain.de.
Dann sind beide Domains am Ende mit derselben IP assoziiert, ohne http Weiterleitung etc.

Über die nginx config geht es auch sicher irgendwie, aber dazu habe ich gerade keine Lust einzutauchen.
 

maschbauer

Benutzer
Mitglied seit
07. Okt 2018
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Vielen Dank Fusion!
Dein Lösungsweg funktioniert und tut mit minimalem Aufwand genau was er soll. Hätte ich mal vor ner Woche mehr über CNAME gelesen statt über nginx. :)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat