DSM 6 Reverse Proxy

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.257
Punkte für Reaktionen
920
Punkte
174
Noch mal die Frage: Bist du sicher, dass der Port 443 richtig ist?
Ich habe die Photostation nicht im Einsatz, kann es dir nicht beantworten, da ich unsere gesamte Multimedia per Plex bereit stelle..

Das kann ich an dieser Stelle beantworten: Die Photostation wird in der Tat per HTTPS / 443 angesprochen. Kann aber scheinbar auch per HTTP / 80 angesprochen werden.
https://www.synology.com/de-de/know...t_network_ports_are_used_by_Synology_services

Ich habe aber primären Zugriff per HTTPS.


-------
Aber auch von mir an dieser Stelle die Frage: So wie ich das sehe, schaltet sich der Reverse-Proxy als "Gateway" zwischen dem Webservice.
Nun zum Verständnis: Kann ich mir durch den Reverse-Proxy die etlichen Portfreigaben sparen, sodass ich z.B. DSM / 5001 auf 443 laufen lassen könnte?
 

frogtwist

Benutzer
Mitglied seit
08. Nov 2014
Beiträge
395
Punkte für Reaktionen
3
Punkte
18
-------
Aber auch von mir an dieser Stelle die Frage: So wie ich das sehe, schaltet sich der Reverse-Proxy als "Gateway" zwischen dem Webservice.
Nun zum Verständnis: Kann ich mir durch den Reverse-Proxy die etlichen Portfreigaben sparen, sodass ich z.B. DSM / 5001 auf 443 laufen lassen könnte?

ja, kannst Du. So wie von mir beschrieben.
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.257
Punkte für Reaktionen
920
Punkte
174

tuxaladin

Benutzer
Mitglied seit
04. Okt 2014
Beiträge
25
Punkte für Reaktionen
0
Punkte
1
Zarafa Z-Push Port Umleiten mit Reverse Proxy

Hallo zusammen,
würde gerne für Zarafa Z-Push Port Umleiten mit Reverse Proxy
-------------------------------------------------------------------------------------------------------
# Test Zarafa Weiterleitung
# -------------------------------------------------------------------------------------------------------

location / zarafa {
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_intercept_errors on;
proxy_http_version 1.1;
proxy_pass https://localhost:9443/z-push/;
}

Sobald ich aber Datei www.zarafa.conf ins Verzeichnis "usr\local\etc\nginx\sites-enabled\"
lege und Webserver bzw. San neu starte, komme ich per Weboberfläche nicht mehr an meine DS412+ ran.
Weiterhin sieht es so aus als würde er dort alle Dateien ziehen nicht nur Endung .conf
Die Weiterleitung funktioniert auch nicht. "https//IPAdresse/zarafa"
Habe HTTP-Backend Server auf nginx umgestellt!!!
Was muss ich noch was beachten sonst??

MFG
Thomas
 

DerLord

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
113
Punkte für Reaktionen
0
Punkte
22
Hallo,

folgende Config läuft leider nicht mit der PS, das DSM funkt.
"Sorry, the page you are looking for is not found." ist die Errorseite…

an was könnte es liegen?

Vielen Dank!

Ich habe mir die Photostation mal testweise installiert, mit php Anwednungen kann es mit der Standardconfig schon mal ärger geben. Aber hiermit funzt es:

Rich (BBCode):
	# -------------------------------------------------------------------------------------------------------
	# PhotoStation
	# -------------------------------------------------------------------------------------------------------
        server {
        listen 443 ssl;
        listen [::]:443 ssl;
		
	server_name test.mydomain.de;
		
	root /var/packages/PhotoStation/target/photo;

        add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" always;	       
                                                                                
        location / {                                                    
	    proxy_http_version 		1.1;
	    proxy_set_header 		Upgrade 			$http_upgrade;
	    proxy_set_header 		Connection 			"upgrade";
				
	    include /etc/nginx/fastcgi_params;
	    fastcgi_pass unix:/var/run/php5-fpm.sock;
	    fastcgi_read_timeout 300;	
			
	    #auth_basic "Photostation";
	    #auth_basic_user_file /etc/nginx/.htpasswd; 			
			
            rewrite ^/$ http://$http_host/photo;
			
            proxy_pass http://localhost;                           
         }   		
	}
	# -------------------------------------------------------------------------------------------------------
	# -------------------------------------------------------------------------------------------------------

Siehe Screen:
nginx_photostation.jpg


Als url einfach test.mydomain.de eingeben. Suffix wird automatisch angehangen, genauso wie redirect auf HTTPS. Nginx holt sich die Seite bei mir nicht verschlüsselt ab, sehe ich so spontan keinen Sinn drin. Die Hauptsache ist, dass es nach außen ins WAN verschlüsselt lüppt und das tut es 1a.

Automatisch auf HTTPS kannste zB so umsetzen:
Rich (BBCode):
	# -------------------------------------------------------------------------------------------------------
	# HTTPS Redirect
	# -------------------------------------------------------------------------------------------------------
	server {
           listen         80;
           server_name 	  *.mydomain.de;
	   return         301 https://$http_host$request_uri;
	}
	# -------------------------------------------------------------------------------------------------------
	# -------------------------------------------------------------------------------------------------------


Kleiner Tipp:
Wenn du viel testest, zwischendurch den Cache vom Browser leeren, da er sich sonst daraus bedient, auch redirects etc...
 

DerLord

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
113
Punkte für Reaktionen
0
Punkte
22
Hallo zusammen,
würde gerne für Zarafa Z-Push Port Umleiten mit Reverse Proxy
-------------------------------------------------------------------------------------------------------
# Test Zarafa Weiterleitung
# -------------------------------------------------------------------------------------------------------

location / zarafa {
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_intercept_errors on;
proxy_http_version 1.1;
proxy_pass https://localhost:9443/z-push/;
}

Sobald ich aber Datei www.zarafa.conf ins Verzeichnis "usr\local\etc\nginx\sites-enabled\"
lege und Webserver bzw. San neu starte, komme ich per Weboberfläche nicht mehr an meine DS412+ ran.
Weiterhin sieht es so aus als würde er dort alle Dateien ziehen nicht nur Endung .conf
Die Weiterleitung funktioniert auch nicht. "https//IPAdresse/zarafa"
Habe HTTP-Backend Server auf nginx umgestellt!!!
Was muss ich noch was beachten sonst??

MFG
Thomas

Moin Thomas,

schnapp dir mal ein funktionierendes Beispiel und baue es an den 2-3 Stellen um. Ich hatte vorher schon mal einige Beispiele gepostet.
Du solltest schon nur auf einen besimmten Port reagieren und den Block nur für eine bestimmte Anfrage nutzen -> server_name
Sonst leitest du ja alles um...
 

ChiliApple

Benutzer
Mitglied seit
04. Dez 2013
Beiträge
240
Punkte für Reaktionen
7
Punkte
24
Vielen Dank für deine Mühe! Das ist sehr nett.
Ich probieren und geb dann Bescheid
VG Udo
 

blinddark

Benutzer
Mitglied seit
03. Jan 2013
Beiträge
1.385
Punkte für Reaktionen
34
Punkte
68
Wo legt die syno eigentlich die über das Anwendungsportal angelegten configs ab?
 

DerLord

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
113
Punkte für Reaktionen
0
Punkte
22
/etc/nginx/nginx.conf

Die wird aber generiert, Änderungen bringen an dieser Stelle nicht so viel.
 

ChiliApple

Benutzer
Mitglied seit
04. Dez 2013
Beiträge
240
Punkte für Reaktionen
7
Punkte
24
leider habe ich keinen Erfolg mit dieser Variante, DSM funkt, PS nicht …

HTML:
	# -------------------------------------------------------------------------------------------------------
	# DSM
	# -------------------------------------------------------------------------------------------------------
	server {
        listen 443 ssl;
        listen [::]:443 ssl;
		
	server_name sub.testdomain.de;

        location / {
            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_intercept_errors  on;
            proxy_http_version      1.1;

            proxy_pass https://localhost:5001;

        }
    }
	# -------------------------------------------------------------------------------------------------------
	# -------------------------------------------------------------------------------------------------------

	# -------------------------------------------------------------------------------------------------------
	# PhotoStation
	# -------------------------------------------------------------------------------------------------------
        server {
        listen 443 ssl;
        listen [::]:443 ssl;
		
	server_name sub.testdomain.de;
		
	root /var/packages/PhotoStation/target/photo;

        add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" always;	       
                                                                                
        location / {                                                    
	    proxy_http_version 		1.1;
	    proxy_set_header 		Upgrade 			$http_upgrade;
	    proxy_set_header 		Connection 			"upgrade";
				
	    include /etc/nginx/fastcgi_params;
	    fastcgi_pass unix:/var/run/php5-fpm.sock;
	    fastcgi_read_timeout 300;	
			
	    #auth_basic "Photostation";
	    #auth_basic_user_file /etc/nginx/.htpasswd; 			
			
            rewrite ^/$ http://$http_host/photo;
			
            proxy_pass http://localhost;                           
         }   		
	}
	# -------------------------------------------------------------------------------------------------------
	# -------------------------------------------------------------------------------------------------------
 

DerLord

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
113
Punkte für Reaktionen
0
Punkte
22
1) DSM und PS haben aber eine >unterschiedliche< Subdomain, oder?
2) funktioniert denn der lokale Aufruf per http://<NAS_IP>/photo ?
 

ChiliApple

Benutzer
Mitglied seit
04. Dez 2013
Beiträge
240
Punkte für Reaktionen
7
Punkte
24
1) nein, mit subdomains würde es vermutlich eh laufen
2) nein auch nicht, zumindest habe ich nicht die IP sondern die Domain eingegeben (läuft über meinen DNS auf die NAS IP)
 

DerLord

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
113
Punkte für Reaktionen
0
Punkte
22
1( wäre es denn schlimm, wenn es "eh funktionieren" würden? ;-)

Ok, du willst mit Suffix arbeiten? Das musst du dann per Location-Directive umsetzen.

Rich (BBCode):
	# -------------------------------------------------------------------------------------------------------
	# HTTPS Redirect
	# -------------------------------------------------------------------------------------------------------
	server {
           listen         80;
           server_name 	  sub.testdomain.de;
	   return         301 https://$http_host$request_uri;
	}
	# -------------------------------------------------------------------------------------------------------
	# -------------------------------------------------------------------------------------------------------
	

	# -------------------------------------------------------------------------------------------------------
	# Reverse Proxy
	# -------------------------------------------------------------------------------------------------------
        server {
           listen 443 ssl;
           listen [::]:443 ssl;
		
	   server_name sub.testdomain.de;
		
	   add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" always;
		
	   # DSM
	   # ---------------------------------------------------------------------------------------------------
           location /dsm {
               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_intercept_errors  on;
               proxy_http_version      1.1;

               proxy_pass http://localhost:5000;
           }
		
	   # Photostation
	   # ---------------------------------------------------------------------------------------------------
           location /photo {     
	      root /var/packages/PhotoStation/target/photo;
	      proxy_http_version 		1.1;
	      proxy_set_header 		Upgrade 			$http_upgrade;
	      proxy_set_header 		Connection 			"upgrade";				
	      include /etc/nginx/fastcgi_params;
	      fastcgi_pass unix:/var/run/php5-fpm.sock;
	      fastcgi_read_timeout 300;	
			
              proxy_pass http://localhost;                           
            }		
        }
	# -------------------------------------------------------------------------------------------------------
	# -------------------------------------------------------------------------------------------------------


2) Versuch erst mal hinzubekommen, dass du lokal in deinem LAN und unverschlüsselt auf die Seite kommst, alles andere macht erst mal keinen Sinn
 

tuxaladin

Benutzer
Mitglied seit
04. Okt 2014
Beiträge
25
Punkte für Reaktionen
0
Punkte
1
Moin Thomas,

schnapp dir mal ein funktionierendes Beispiel und baue es an den 2-3 Stellen um. Ich hatte vorher schon mal einige Beispiele gepostet.
Du solltest schon nur auf einen besimmten Port reagieren und den Block nur für eine bestimmte Anfrage nutzen -> server_name
Sonst leitest du ja alles um...

Hallo Lord
danke für den Tip aber irgendwie haut das bei mir gar nicht hin. Einfachste Beispiele bringen Fehler im /var/log/nginx/error.log.
Muss dazu sagen, habe keine feste ip und realisiere es über dyndns.org . Wenn ich dort sub Domain vorstelle läuft ja ins leere!!!!
Also Versuch mit Pfadangabe /nas wie in deinem Beispiel. Bei mir Datei: etc/nginx/sites-enabled/nginix-reserve-proxy.conf

server {
listen 80;
listen [::]:80;

server_name "meinKonto".dyndns.org/nas/;

location / {
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_intercept_errors on;
proxy_http_version 1.1;
proxy_pass http://localhost:5000;
}
}

Bringt Meldung beim Neustadt nginix (/usr/syno/etc/rc.sysv/nginx.sh reload) im /var/log/nginx/error.log
2016/04/03 18:29:02 [warn] 20460#20460: server name "xxxxxxxxx.dyndns.org/nas/" has suspicious symbols in /etc/nginx/sites-enabled/nginix-reserve-proxy.conf:5

Egal mit oder ohne Slash hinter nas.

Beim Versuch auf die Seite zuzugreifen mit Safari kommen folgende Meldungen:

2016/04/03 19:10:50 [error] 24519#24519: *53492 open() "/var/services/web/help.css" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /help.css HTTP/1.1", host: "xxxxxxxxx.dyndns.org", referrer: "https://xxxxxxxxx.dyndns.org/"
2016/04/03 19:10:50 [error] 24519#24519: *53497 open() "/var/services/web/scrollbar/flexcroll.css" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /scrollbar/flexcroll.css HTTP/1.1", host: "xxxxxxxxx.dyndns.org", referrer: "https://xxxxxxxxx.dyndns.org/"
2016/04/03 19:10:50 [error] 24519#24519: *53499 open() "/var/services/web/scrollbar/initFlexcroll.js" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /scrollbar/initFlexcroll.js HTTP/1.1", host: "xxxxxxxxx.dyndns.org", referrer: "https://xxxxxxxxx.dyndns.org/"
2016/04/03 19:10:50 [error] 24519#24519: *53501 open() "/var/services/web/scrollbar/flexcroll.js" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /scrollbar/flexcroll.js HTTP/1.1", host: "xxxxxxxxx.dyndns.org", referrer: "https://xxxxxxxxx.dyndns.org/"
2016/04/03 19:10:50 [error] 24519#24519: *53503 open() "/var/services/web/nas" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /nas HTTP/1.1", host: "xxxxxxxxx.dyndns.org"
2016/04/03 19:10:50 [error] 24519#24519: *53505 open() "/var/services/web/missing" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /missing HTTP/1.1", host: "xxxxxxxxx.dyndns.org", referrer: "https://xxxxxxxxx.dyndns.org/nas"
2016/04/03 19:10:52 [error] 24519#24519: *53511 open() "/var/services/web/nas" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /nas HTTP/1.1", host: "xxxxxxxxx.dyndns.org"
2016/04/03 19:10:52 [error] 24519#24519: *53513 open() "/var/services/web/missing" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /missing HTTP/1.1", host: "xxxxxxxxx.dyndns.org", referrer: "https://xxxxxxxxx.dyndns.org/nas"


2ter Versuch!!!

server {
listen 80;
listen [::]:80;

server_name xxxxxxxxxxx.dyndns.org;

location /nas {
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_intercept_errors on;
proxy_http_version 1.1;
proxy_pass http://localhost:5000;
}
}

Beim Reload kommt dann keine Meldung jedoch beim zugreifen auf diese Seite kommt im error.log.

2016/04/03 18:44:44 [error] 20549#20549: *52973 open() "/var/services/web/help.css" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /help.css HTTP/1.1", host: "xxxxxxxxx.dyndns.org", referrer: "https://xxxxxxxxx.dyndns.org/"
2016/04/03 18:44:44 [error] 20549#20549: *52979 open() "/var/services/web/scrollbar/flexcroll.css" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /scrollbar/flexcroll.css HTTP/1.1", host: "xxxxxxxxx.dyndns.org", referrer: "https://xxxxxxxxx.dyndns.org/"
2016/04/03 18:44:44 [error] 20549#20549: *52980 open() "/var/services/web/scrollbar/initFlexcroll.js" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /scrollbar/initFlexcroll.js HTTP/1.1", host: "xxxxxxxxx.dyndns.org", referrer: "https://xxxxxxxxx.dyndns.org/"
2016/04/03 18:44:44 [error] 20549#20549: *52982 open() "/var/services/web/scrollbar/flexcroll.js" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /scrollbar/flexcroll.js HTTP/1.1", host: "xxxxxxxxx.dyndns.org", referrer: "https://xxxxxxxxx.dyndns.org/"
2016/04/03 18:44:48 [error] 20549#20549: *52990 open() "/var/services/web/nas" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /nas HTTP/1.1", host: "xxxxxxxxx.dyndns.org"
2016/04/03 18:44:48 [error] 20549#20549: *52996 open() "/var/services/web/missing" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /missing HTTP/1.1", host: "xxxxxxxxx.dyndns.org", referrer: "https://xxxxxxxxx.dyndns.org/nas"
2016/04/03 18:53:02 [error] 22720#22720: *53138 open() "/var/services/web/nas" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /nas HTTP/1.1", host: "xxxxxxxxx.dyndns.org"
2016/04/03 18:53:02 [error] 22720#22720: *53142 open() "/var/services/web/missing" failed (2: No such file or directory), client: 93.221.xxx.xx, server: , request: "GET /missing HTTP/1.1", host: "xxxxxxxxx.dyndns.org", referrer: "https://xxxxxxxxx.dyndns.org/nas"

Gehe ja davon aus das ich keine Verzeichnis für nas auf dem Web Server brauche soll ja umgeleitet werde.

Hilfeeeeeeeee. Besten Dank.
MFG
Thomas
 

tuxaladin

Benutzer
Mitglied seit
04. Okt 2014
Beiträge
25
Punkte für Reaktionen
0
Punkte
1
Nachdem ich bis zum Excess mit der Pfadangabe das probiert habe, sah ich im Block Anmerkung von Lord.

Wenn nicht, leg eine Subdomain mit CNAME auf deine DynDNS an.

Schau an, Haken bei Wildcard im DynDns
create "*.xxxxxx.dyndns.org" alias
(for example to use same settings for www.xxxxxxx.dyndns.org) und schon funktioniert es mit dem einfachen Beispiel.
Oh mann, so jetzt weiter mit Zarafa4h Umleitung.

Mit /nas Pfadumleitung bin ich nicht weitergekommen wie Ihr seht.

MFG
Thomas
 

Nebelkrähe

Benutzer
Mitglied seit
21. Mai 2014
Beiträge
38
Punkte für Reaktionen
0
Punkte
6
Ich möchte mich kurz mit einer Frage einklinken - habe das ganze Thema durchgelesen und es nicht ans Laufen bekommen:

Bei Strato habe ich eine Domain www.meinedomain.de und ich kann keine Subdomains anlegen. Zertifikat von Lets encrypt ist in installiert und läuft sauber. Jetzt möchte ich statt www.meinedomain.de:8250 die Umleitung über www.meinedomain.de/znc bekommen (SSL wäre dann der nächste Schritt).

Soweit ich es sehe, kann ich es in der GUI zum Reverse Proxy (DSM 6) nicht eingeben. Wie klappt es über das Terminal?
 

DerLord

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
113
Punkte für Reaktionen
0
Punkte
22
Terminal brauchste nicht. Einfach eine conf anlegen unter /usr/local/etc/nginx/sites-enabled/
Ein funktionierendes Beispiel, welches auch deinen Bedarf deckt, findest du unter Post #54.
 

Nebelkrähe

Benutzer
Mitglied seit
21. Mai 2014
Beiträge
38
Punkte für Reaktionen
0
Punkte
6
Webserver neu starten

Terminal brauchste nicht. Einfach eine conf anlegen unter /usr/local/etc/nginx/sites-enabled/
Ein funktionierendes Beispiel, welches auch deinen Bedarf deckt, findest du unter Post #54.

mal eine ganz ganz dumme Frage: wie starte ich den Webserver der DS neu? Einfach "Web Station" anhalten und neu starten?
 

DerLord

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
113
Punkte für Reaktionen
0
Punkte
22
Ja zB, oder per Konsole: nginx -s reload
 
Zuletzt bearbeitet:


 

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