Hallo Zusammen,
ich versuche zur Zeit ein Docker-Image (Nextcloud) über einen Reverse Proxy über das Internet zugreifbar zu machen. Ich habe bereits diesen Thread http://www.synology-forum.de/showthread.html?73345-DSM-6-Reverse-Proxy gelesen und versucht mir eine Konfiguration für ngingx zu erstellen.
Da ich dabei zwischenzeitlich den Zugriff auf die DSM Oberfläche zerschossen hatte und diesen nur über mehrere Neustarts wiederherstellen konnte, dachte ich, ich schreibe mal einen eigenen Thread.
Ich möchte gerne folgendes erreichen: Zugriff auf den Docker-Container von extern über meinedomaine.de/nextcloud. Der Docker-Container (wonderfall/nextcloud) läuft auf Port 8888. Über die in DSM eingebaute Reverse-Proxy funktion kann ich z.B. über eingen spezifischen Port (z.B. 7777) den Zugriff ermöglichen (meinedomaine.de:7777).
Ich denke die schwierigkeit dabei besteht, dass ich nebenbei auch eine "native" ownCloud Instanz laufen lasse die über meinedomaine.de/owncloud erreichbar ist (und auch weiterhin erreichbar bleiben soll). Die "native" ownCloud läuft über den in die Webstation integrierten Webserver Apache2.
Hier meine erste Frage an die Experten: Kann ich die ownCloud über die Webstation mit Apache2 laufen lassen und parallel dazu den Reverse-Proxy über nginx? Oder muss ich erst die ownCloud auf nginx migrieren? Wenn ich einfach so umschalte, dann bekomme ich im Sync-Client auf Windows die Fehlermeldung server replied: Not Allowed. Scheinbar muss man da mehr als nur "umschalten".
Für meinen Reverse-Proxy habe ich mir aus dem o.g. Thread folgende nginx-Konfiguration gebastelt:
Diese hatte ich per SSH nach /usr/local/etc/nginx/sites-enabled/ kopiert und mit nginx -s reload neu geladen. Danach war mein DSM nicht mehr verfügbar.
Gibt es nicht eine generelle lösung wie ich ein HTTP-Frontend in einem Docker-Container auf HTTPS (mit den Zertifikaten aus dem DSM) nach außen schleifen kann?
Danke,
Grüße,
mdawid
ich versuche zur Zeit ein Docker-Image (Nextcloud) über einen Reverse Proxy über das Internet zugreifbar zu machen. Ich habe bereits diesen Thread http://www.synology-forum.de/showthread.html?73345-DSM-6-Reverse-Proxy gelesen und versucht mir eine Konfiguration für ngingx zu erstellen.
Da ich dabei zwischenzeitlich den Zugriff auf die DSM Oberfläche zerschossen hatte und diesen nur über mehrere Neustarts wiederherstellen konnte, dachte ich, ich schreibe mal einen eigenen Thread.
Ich möchte gerne folgendes erreichen: Zugriff auf den Docker-Container von extern über meinedomaine.de/nextcloud. Der Docker-Container (wonderfall/nextcloud) läuft auf Port 8888. Über die in DSM eingebaute Reverse-Proxy funktion kann ich z.B. über eingen spezifischen Port (z.B. 7777) den Zugriff ermöglichen (meinedomaine.de:7777).
Ich denke die schwierigkeit dabei besteht, dass ich nebenbei auch eine "native" ownCloud Instanz laufen lasse die über meinedomaine.de/owncloud erreichbar ist (und auch weiterhin erreichbar bleiben soll). Die "native" ownCloud läuft über den in die Webstation integrierten Webserver Apache2.
Hier meine erste Frage an die Experten: Kann ich die ownCloud über die Webstation mit Apache2 laufen lassen und parallel dazu den Reverse-Proxy über nginx? Oder muss ich erst die ownCloud auf nginx migrieren? Wenn ich einfach so umschalte, dann bekomme ich im Sync-Client auf Windows die Fehlermeldung server replied: Not Allowed. Scheinbar muss man da mehr als nur "umschalten".
Für meinen Reverse-Proxy habe ich mir aus dem o.g. Thread folgende nginx-Konfiguration gebastelt:
Rich (BBCode):
# -------------------------------------------------------------------------------------------------
# Nextcloud
# -------------------------------------------------------------------------------------------------
server {
listen 443 ssl http2;
server_name meinedomaine.de;
add_header Strict-Transport-Security "max-age=31536000"; # Use with caution
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
location /nextcloud {
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_redirect off;
proxy_pass http://DOCKER-IP:8888;
}
}
Diese hatte ich per SSH nach /usr/local/etc/nginx/sites-enabled/ kopiert und mit nginx -s reload neu geladen. Danach war mein DSM nicht mehr verfügbar.
Gibt es nicht eine generelle lösung wie ich ein HTTP-Frontend in einem Docker-Container auf HTTPS (mit den Zertifikaten aus dem DSM) nach außen schleifen kann?
Danke,
Grüße,
mdawid