Reverse Proxy unterschiedliche Hostnamen aber gleicher Port

Status
Für weitere Antworten geschlossen.

mexx81

Benutzer
Mitglied seit
17. Dez 2013
Beiträge
597
Punkte für Reaktionen
0
Punkte
42
Hallo,

ich nutze die DSM 6 Final, habe eine feste IP und ein paar Domains, sowie eine Fritzbox. Bisher habe ich die Portweiterleitung genutzt um die unterschiedlichen Dienste anzusprechen. Jetzt spiele ich ein wenig mit den Reverse Proxy rum. Das ich damit ähnlich wie bei der Portweiterleitung am Router von aussen einen anderen Port ansprechen kann als innen präsentiert wird, ist kein Problem. Aber wie verhält es sich, wenn ich zwei mal den HTTPS Port auf unterschiedlichen Hostname ansprechen will.

Sprich:

domain1.de:443 zu localhost:443
domain2.de:443 zu localhost:irgendwas

Ist der Reverse Proxy in der Lage anhand des URL Header Request, den Unterschied zu erkennen oder sollte ich mit Subdomains arbeiten.

Sprich:

dienst1.domain.de:443 zu localhost:443
dienst2.domain.de:443 zu localhost:irgendwas

Oder ist es sinnvoller beim Quell Hostname immer unterschiedliche Ports zu verwenden.

Sprich:

domain1.de:443 zu localhost:443
domain1.de:irgendwas zu localhost:irgendwas

Danke!
mexx
 

ssab

Benutzer
Mitglied seit
20. Aug 2014
Beiträge
107
Punkte für Reaktionen
0
Punkte
0
Hallo mexx81,

damit habe ich mich gestern auch mal flüchtig beschäftigt. Habe bisher auch über die Portweiterleitung die verschiedenen Diensten, aber wenn man hinter einer Firmen-Firewall mit nur Port 443 und 80 zur Verfügung sitzt, ist man schnell am Ende. Ich habe es erstmal nur so gelöst bekommen, über https://subdomain.domain.de:443 gehe ich an https://localhost:5006 für WebDAV und über https://domain.de:443 gehe ich an https://localhost:5001 für DSM. Leider bräuchte ich nach dieser Methodik noch eine dritte Subdomain/Domain, um die Photo-Station per https Port 443 zu erreichen, aber das gibt mein Zertifikat-Ersteller nicht her...

Vom Prinzip funktionier also der Zugriff über Port 443 an mehrere Dienste (ACHTUNG, Portweiterleitung im Router muss dann auch von 443 extern an 443 der Diskstation sein) Eigentlich hätte ich das alles aber gern über https://domain.de/Dienstname gelöst, das wäre viel flexibler. Aber leider scheint das so nicht zu gehen...
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.137
Punkte für Reaktionen
898
Punkte
424
@ssab - Wenn deine DS unter domain.de erreichbar ist. Dann ist die Photo Station unter domain.de/photo

Die Dienste kann man ja im Anwendungsportal mit ALias versehen DS-domain.de/dienst.
Wenn man das jetzt mit Reverse Proxy kombiniert sollte das doch gehen.
Zumindest auf config file Ebene kann man nicht nur Domains oder Subdomains umsetzen sondern auch Pfade dahinter umschreiben.
 

ssab

Benutzer
Mitglied seit
20. Aug 2014
Beiträge
107
Punkte für Reaktionen
0
Punkte
0
@Fusion: so dachte ich auch, geht aber nicht... Die Photo Station läuft nach meinem Verständnis auf einem eigenen Webserver, der standardmäßig für https auf Port 443 lauscht (in den Einstellungen der Photo Station änderbar). Aber aktuell fängt mein Reverse Proxy den Port 443 ab und leitet ihn wie oben beschrieben an 5001 oder 5006 weiter. Also komm an der Photo Station so grade nichts an. Wohl aber funktioniert das für die Audio Station mit https://domain.de/audio , da dies auf dem gleichen Webserver wie das DSM an sich läuft und damit über 5001 richtig adressiert wird... Also noch etwas Nachbesserungsbedarf mit der Pfad-Geschichte, an für sich aber der richtige Weg...
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ein Proxy kann problemlos mehrere Domains an unterschiedliche Ziele durchreichen. Da musst du nicht unbedingt mit Subdomains arbeiten. Ein Proxy kann sogar aufgrund der URL entscheiden wohin ein Request gehen soll sprich domain.tld/pfad/datei an ein anderes Backend geben als bei domain.tld/pfad/datei1
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.137
Punkte für Reaktionen
898
Punkte
424
@ssab. Richtig. Es gibt einen user und einen system webserver. Das ist für den Proxy allerdings nicht relevant, solange die Einträge richtig gesetzt sind. Ich habe (allerdings noch unter DSM 5.2 und auf dem user-webserver. Und deshalb auch direkt in den webserver conf Dateien) auch einen reverse proxy, der auf eine andere DS umleitet.
Wie @jahlives schreibt, darfst du dann natürlich nicht mehr einfach nur mit localhost:<port> arbeiten sondern mit Domains, Ports und Pfaden.
 

ssab

Benutzer
Mitglied seit
20. Aug 2014
Beiträge
107
Punkte für Reaktionen
0
Punkte
0
Ja, aber das lässt der Reverse Proxy in der Systemsteuerung nicht zu, sobald ich in "Quelle - Hostname" nach Domain.de mit einem Slash weitermachen will, nimmt er das nicht an... Mache ich was falsch?
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.137
Punkte für Reaktionen
898
Punkte
424
@saab - nein, das hast du schon richtig erkannt. Die webGUI (DSM) ist hier am Ende ihrer Möglichkeiten. Wer eben nicht 0815 Einstellungen braucht, also vermutlich nicht gerade wenig Leute, muss auch weiterhin direkt in den Config Dateien der webserver arbeiten. (ist halt wieder ein netter Ansatz (finde es immer noch gut, dass mit DSM 6 reverse proxy und lets encrypt gekommen sind), aber wieder zu kurz gegriffen, um ihn wirklich sinnvoll einsetzen zu können)
 

ChiliApple

Benutzer
Mitglied seit
04. Dez 2013
Beiträge
240
Punkte für Reaktionen
7
Punkte
24
kennst du auch den Pfad dafür wo sich die Config des ReverseProxy befindet?

Danke
VG
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.137
Punkte für Reaktionen
898
Punkte
424
Das sollte sowohl mit Apache wie auch nginx als Backend funktionieren (der System Webserver wird weiter unter nginx laufen). Je nachdem auf welchem der beiden server man den reverse proxy aufsetzt ändert sich halt die "Syntax". Sprich die configs sehen halt anders aus.
 

laley

Benutzer
Mitglied seit
08. Jan 2013
Beiträge
80
Punkte für Reaktionen
3
Punkte
8
Hi, ich habe auch mal ne Frage zu dem Thema.

Meine DS ist per MyFritz Dienst auf der FritzBox über eine DynDNS Adresse erreichbar.
Um auf die verschiedenen Anwendungen zu gelangen, rufe ich diese DynDNS mit angehängtem zugewiesenen Port auf.
Die Ports habe ich entsprechend in der FritzBox weitergeleitet.
DSphoto hat z.B. port 442
Also rufe ich die Web Station unter https://dyndns_adresse.de:442 auf

Ich möchte aber gerne nun die Dienste als Reverse Proxy weiterleiten.
Also z.B. https://dyndns_adresse.de/dsweb

Ich habe es in der DS soweit auch eingerichtet.
Es funktioniert aber nicht.

Muss ich hierfür den DynDNS Dienst der DS nutzen?
Die Port Weiterleitungen in der FB müssen doch bestehen bleiben, oder?
Sonst kann ich ja auch nicht mehr mit meiner DSphoto App darauf zugreifen!? Diese nutzt für den Photo Dienst Port 444
 
Zuletzt bearbeitet:

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.137
Punkte für Reaktionen
898
Punkte
424
Dinge wie "soweit auch eingerichtet" helfen nicht. Bitte detailliert oder bebildert beschreiben was genau du wo und wie eingetragen hast.

dyndns.de/alias ist ein Alias und kein Reverse proxy. Das sollte eigentlich auffallen, da du dyndns.de/dsphoto nicht als Hostnamen angeben kannst.

Welchen dyndns Dienst du nutzt ist egal (außer bei IPv6), da die Adresse immer auf die öffentliche IPv4 deiner Fritzbox zeigt, egal welches Gerät die IP Aktualisierung vornimmt.

Eine Adresse wie https://dyndns.de/dsphoto läuft über den Port 443 (bedingt durch die Protokollangabe https die ohne weitere Portangabe eben den vordefinierten Port benutzt)
Dieser muss auch an die DS weitergeleitet werden. Selbes gilt für http Adressen die automatisch Port 80 benutzen soweit nicht explizit anders angegeben.

Die Photo Station ist zudem ein Sonderfall, da sie auf dem Benutzer-Webserver läuft, während die anderen Syno Dienste wie File Station, Video Station etc die man im Anwendungsportal einstellen kann über den Systemwebserver laufen.
 

laley

Benutzer
Mitglied seit
08. Jan 2013
Beiträge
80
Punkte für Reaktionen
3
Punkte
8
2018-06-14.png
So ist z.B. die Web Station eingerichtet.

Einen alias kann ich aber nur für Download-, File- und Video Station einrichten.
Nicht aber für Photo- oder Web Station, oder den WebAdmin Bereich (Standard Port 5001)
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.137
Punkte für Reaktionen
898
Punkte
424
Da müsste man jetzt gefühlt mal in die Grundlagen der Webserver-Config auf der Syno, DNS und Namensauflösung im Netz und Lokal, etc. eintauchen.
Da fehlt mir gerade die Zeit dafür.
"
Ein Host, der anders als via http/80 oder https/443, erreichbar sein soll benötigt immer die Mitgabe eines Ports in der URL.
Andernfalls muss noch ein Proxy oder anderes "zwischendrin" auf dem liegen, der dann eine Umleitung macht (z.B. von 443 auf 5001)
Und ein Host braucht normal einen FQDN, also einen vollständigen Namen, der im jeweiligen zugreifenden Netz (Nameserver) bzw. vom zugreifenden Rechner sauber auf eine IP aufgelöst werden kann.
Deshalb sind Hostnamen wie dswebstation normal aus dem externen Netz und sub.domain.de aus dem lokalen Netz oftmals nicht (ohne weitere Hilfsmittel) erreichbar (liegt einmal am DNS und/oder Sicherheitsfunktionen der Router).
Der Hostname eines Reverse Proxy muss exakt so lauten wie du ihn auch aufrufst. Ein Host auf "dswebstation" wird also nicht auf Anfragen auf "dyndns.de" reagieren.
Das merkst du eventuell nicht, weil alle nicht definierten Hostnamen oder Anfragen via IP vom Haupt-Server der DS angenommen wird und vom obersten doc-root der Webstation beantwortet wird oder auch auf 403/404 Fehler enden kann.

Die Web Station und die Photo Station laufen beide auf dem Benutzer-Webserver. Normal also was unter /web liegt, wenn sonst keine ander Einstellung getroffen wurde (ausgehend vom Werkszustand).
Diese laufen auch immer auf 80/443, das kannst du nicht umstellen.
Einzig den Router Port kannst du angeben, wenn z.B. die Portweiterleitung im Router 442 auf 443 an der DS ist, dann kann man die 442 in der Photo Station angeben, damit diese geteilte Links zu Photo Alben etc entsprechend mit domain.de:442/Album/pfad etc erzeugt. Gleiches gilt für den Port unter Systemsteuerung > Externer Zugriff > Erweitert.
Beide stellen geben NUR an unter welchem Port dieser Dienst von außerhalb des Routers erreichbar ist, NICHT auf welchem Port der Dienst auf der DS läuft.

Der DSM / WebAdmin-Bereich wie du es nennst kann z.B. via https://dsm.domain.de erreicht werden, wenn die Domain http(s)://dsm.domain.de im Internet auf deinen Internetanschluß zeigt (gilt so nur für IPv4), der Name unter Systemsteuerung > Netzwerk > DSM Einstellungen als benutzerdefinierte Domain eingetragen ist und der Port 80/443 vom Router an deine DS weitergeleitet ist. Gleiches Prinzip für alle "benutzerdefinierten Domains" die du unter Systemsteuerung > Anwendungsportal > Anwendungen findest.

Der Alias photo sollte normal schon funktionieren via http(s)://dyndns.de/photo, wenn vom Werkszustand (Web und Photo Station installiert) ausgehe und dyndns.de nirgendwo anders im DSM als proxy oder benutzerdefinierte Domain gesetzt ist.
 

laley

Benutzer
Mitglied seit
08. Jan 2013
Beiträge
80
Punkte für Reaktionen
3
Punkte
8
Danke für die ausführliche Antwort.

Dass das Thema so komplex ist hatte ich nicht erwartet.
In vorangegangenen Posts hörte es sich so an als könnte ich das relativ leicht so konfigurieren wie ich es brauche.

Aber so wichtig ist es dann für mich auch nicht.
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.137
Punkte für Reaktionen
898
Punkte
424
Vielleicht kannst du nochmal klar umreißen was du wie erreichbar haben willst?

Ein Problem ist eben leider immer dass Synology hier nicht konsistent über ALLE angebotenen Dienste ist und es deshalb manchmal mit GUI Mitteln schlicht nicht möglich ist alles identisch aufzuzuiehen.
Manchmal kann man sich mit manuellen Eingriffen in die Config auf der Konsole behelfen (bis zum nächsten Update).
Und manche Sachen gehen gar nicht.
Das was es zudem komplex macht sind die 2-3 Web Server die auf der Syno laufen und miteinander/parallel arbeiten, und dass es dann eben auch Möglichkeiten ohne Ende gibt manchmal (alle Straßen führen nach Rom...)
 

micky1067

Benutzer
Mitglied seit
10. Nov 2016
Beiträge
49
Punkte für Reaktionen
0
Punkte
6
Hallo Fusion,

ich habe mal eine Frage zum Thema Reverse Proxy. Du scheinst dich ja gut auszukennen.
Ich habe es soweit alles auch gut am Laufen. Nur zwei Dinge fehlen mir noch die ich in die Config einsetzen möchte.

1. Wie kann ich die Fritzbox über den Reverse Proxy erreichen ? Port 443 ist auf die DS weitergeleitet und ich kann dort
eine Webseite öffnen, über die ich alle weitere Dienste erreichen kann. Ich lande immer wieder auf der Webseite und nicht auf der Seite der Fritzbox.
2. Auf der zweiten DS habe ich eine weitere SQL Datenbank am laufen, die ich mit phpmyadmin erreichen möchte.
Lande aber immer auf der ersten Datenbank. Würde mich über deine Hilfe sehr freuen.
Viele Grüße
micky1067

Rich (BBCode):
#----------------------------------------------------------------------------------------------------
# HTTPS Redirect
#----------------------------------------------------------------------------------------------------
	server {
           listen         80;
           server_name 	  meineURL.goip.de;
   	   return         301 https://$http_host$request_uri;
	}
#----------------------------------------------------------------------------------------------------
# HTTPS
#----------------------------------------------------------------------------------------------------
   server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name meineURL.goip.de;
	root /var/packages/PhotoStation/target/photo;
        add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" always;	       
#----------------------------------------------------------------------------------------------------
# PhotoStation
#----------------------------------------------------------------------------------------------------
        location /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;	
	    	#auth_basic "Photostation";
	    	#auth_basic_user_file /etc/nginx/.htpasswd; 			
       		rewrite ^/$ http://$http_host/photo;
       		proxy_pass http://192.168.6.2;                           
      }
 # ---------------------------------------------------------------------------------------------------
 # Hauptseite Webserver DS218
 # ---------------------------------------------------------------------------------------------------
       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;	
          proxy_pass http://192.168.6.2/;                           
          }
	   location /secret/ {
			auth_basic "secret";
			auth_basic_user_file /volume1/web/secret/.htpasswd;
        	proxy_pass http://192.168.6.2/secret/;
        }  
# ---------------------------------------------------------------------------------------------------
# phpmyadmin DS218
# ---------------------------------------------------------------------------------------------------
       location /php-ds218/ {     
	        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://192.168.6.2/phpMyAdmin/;                           
            }		
# ---------------------------------------------------------------------------------------------------
# phpmyadmin DS216
# ---------------------------------------------------------------------------------------------------
#       location /php-ds216/ {     
#	        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://192.168.6.8/phpMyAdmin/;                           
 #           }		

#---------------------------------------------------------------------------------------------------
# Fritzbox
#---------------------------------------------------------------------------------------------------
#		location /fritz {
#            proxy_pass http://192.168.0.1;
#			proxy_redirect default; 
#			
#        }
#---------------------------------------------------------------------------------------------------
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.137
Punkte für Reaktionen
898
Punkte
424
zu 1) Weg via GUI
- Systemsteuerung > Anwendungsportal > Reverse Proxy: https, fritz.domain.de, 443 (als Beispiel, es muss eben eine Domain/Hostname sein der von extern auf deinen Anschluß zeigt und nicht anderweitig im DSM irgendwo eingetragen ist)
- als Ziel dann http/https, LAN-IP-Fritzbox, Port 80/xxx (je nach Wunsch eben http/80, oder https/xxx (wenn du SSL verschlüsselt haben willst auch zwischen DS und Fritzbox und du in der Fritzbox einen Fernverwaltungsport eingetragen hast)
- eventuell noch fritz.domain.de unter Heimnetz > Netzwerkeinstellungen > DNS Rebind Schutz eintragen (falls es anderweitig eine Fehlermeldung von der Fritzbox gibt)
Für den Weg via config Datei und fritz-Alias müsste ich nochmal schauen.
- Wo liegt deine config Datei?
- "Fehlerseite" ist die Dummy Seite der Web Station?

zu 2)
Du meinst du landest via domain.de/php-ds216/ auf dem phpMyAdmin der DS218?
 
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