NGINX zusätzliche Parameter für Vhost und Reverse Proxy Sites

jck42

Benutzer
Mitglied seit
18. Mrz 2012
Beiträge
25
Punkte für Reaktionen
9
Punkte
53
Hallo zusammen,

ich kämpfe mit der Synology-Implementierung von Vhost und Reverse-Proxy Parametern und bin für Hilfe dankbar. Ich rede von DSM 6.2.3, falls das einen Unterschied machen sollte.

Das Thema sind location based re-directs, d.h. je nach Unterverzeichnis eine andere proxy_pass Adresse. Mit der Webstation und dem Anwendungsportal lassen sich ja bestens Sites erstellen, allerdings sind die Konfigurationsmöglichkeiten beschränkt. NGINX an sich kann ja viel mehr als per GUI konfigurierbar ist.

Zuerst war mein Ansatz, die /etc/nginx/app.d Config-Dateien server.webstation-vhost.conf und server.ReverseProxy.conf zu ergänzen und dann per nginx -s reload zu aktivieren. Klappt auch, allerdings werden die Dateien öfter mal wieder vom System neu generiert und überschrieben, so dass die Ergänzungen weg sind - spätestens bei einem reboot.

Für die vhost-Variante konnte ich das permanenter machen, da Synology ja in der server.webstation-vhost.conf zusätzliche user-conf zieht per z.B. include /usr/local/etc/nginx/conf.d/123456-abcdef-123456-abcdef-123456/user.conf*. D.h. da habe ich einfach in das entsprechende Verzeichnis eine user.conf-xyz gelegt, in die ich zusätzliche Konfigurationsparameter eingetragen habe.

Bei der server.ReverseProxy.conf sehe ich die Möglichkeit nicht, d.h. hier stehe ich noch auf dem Schlauch, wie ich dort zusätzliche Parameter permanenter machen könnte.

Hat jemand einen Tipp oder eine Anleitung?

Danke & Grüße
jck
 

Lux007

Benutzer
Mitglied seit
08. Aug 2016
Beiträge
116
Punkte für Reaktionen
2
Punkte
18
Hallo!
Beschreib doch bitte mal, was Du genau vor hast. Bleibst Du auf der Diskstation oder möchtest Du andere Webserver in deinem Netzwerk damit erreichen?

Ich nutze eigene *.conf-Dateien unter /usr/local/etc/nginx/sites-enabled/ .

Diese werden nicht überschrieben und Du kannst hier manuell alle Einstellungen vornehmen.
Als Muster habe ich eine Kopie der server.webstation-vhost.conf genommen und diese dann immer weiter angepasst.

Wichtig: Zugriff über SSH sollte zuverlässig funktionieren. Wenn der NGINX aufgrund eines fehlerhaften Eintrages nicht mehr startet, kommst Du nicht mehr in die Weboberfläche!

Gruß
Lux007
 

jck42

Benutzer
Mitglied seit
18. Mrz 2012
Beiträge
25
Punkte für Reaktionen
9
Punkte
53
Danke Lux007, der Tipp ist genau richtig und so habe ich das jetzt auch hinbekommen. Da es vielleicht anderen genauso geht, hier mein Anwendungsbeispiel:

Ich habe einen Docker BitwardenRS-Container laufen, der über reverse-proxy angebunden ist, damit clients von aussen darauf zugreifen können. Für die Grundfunktion ist ein simpler port-redirect von 443 auf den Container-Port nötig. Das kann man auch gut über die DSM-GUI einrichten, zusammen mit einem Let's Encrypt-SSL Zertifikat läuft das dann auch prima. Die Kür war nun, die LiveSync-Funktion von BitwardenRS dauerhaft ans Laufen zu bekommen, die über Websockets funktioniert. Für die Einbindung muss der Reverse-Proxy zusätzlich einen location-Pfad zu einem weiteren Port umleiten. Das geht leider mit dem Hausmittel-GUI nicht.

Was ich nun gemacht habe, ist folgendes:

1) Normalen Reverse-Proxy für die Grundfunktion angelegt, grundsätzliche WebSockets-Header mit drin.
2) Die angelegte config aus der server.ReverseProxy.conf herauskopiert und in eine eigene servername.conf eingetragen, die unter /usr/local/etc/nginx/sites-enabled/ abgelegt wird.
3) Dort habe ich auch die nötigen Zusatzeinträge für das LiveSync über Websockets eingefügt.
4) Das eingebundene SSL-Zertifikat an eine andere Stelle im Dateisystem, die nicht vom System überschrieben wird, kopiert und die Verweise in der servername.conf entsprechend aktualisiert.
5) Den ursprünglichen Reverse-Proxy gelöscht.

So funktioniert das jetzt vollständig und überlebt auch prima einen Reboot und auch ein DSM-Update.

Einziges Manko sehe ich nun noch darin, dass ich bei Erneuerung des SSL-Zertifikats dieses "refreshte" Zertifikat wieder an die unabhängige Stelle kopieren muss. Ich werde noch ausprobieren, ob das vielleicht auch direkt mit der Stelle geht, an der die Zertifikate gespeichert werden, also unter /usr/syno/etc/certificate/_archive.

Auf alle Fälle stimme ich dir zu: Wer an der NGINX-Konfiguration herumspielt, sollte einen stabilen SSH-Zugriff haben ;)

Grüße
jck
 
Zuletzt bearbeitet:

jck42

Benutzer
Mitglied seit
18. Mrz 2012
Beiträge
25
Punkte für Reaktionen
9
Punkte
53
Kleine Ergänzung: Nach einem Zertifikats-Refresh habe ich in der Tat die Stelle, an der die Zertifikate abgelegt werden, als Vereinfachung genutzt - und es klappt soweit.

D.h. Schritt 4) kann man dahingehend vereinfachen, dass man direkt auf die zentrale Stelle verweist, wo die Synology die Zertifikate ablegt. Ein Herumkopieren ist dann nicht mehr nötig und ein Refresh der Zertifikate nur ein Knopfdruck.
 


 

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