Nginx für Reverse Proxy

userdaf

Benutzer
Mitglied seit
31. Mai 2020
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

ich versuche gerade einen Nginx Docker als Reverse Proxa zum laufen zu bringen.
Leider schaffe ich das nicht, und hoffe das einer von euch mir helfen kann.

Zu meinen Vorhaben, ich habe einige Docker laufen welche eine Weboberfläche besitzen.
Einige von diesen Oberflächen würde ich gerne von aussen erreichbar machen.
Aktuell habe ich im meinen Router viele Ports freigeben, funktioniert auch soweit ganz gut.

Aber eigentlich möchte ich nicht soviele Port freigeben müssen.
Zusätzlich würd eich gerne alle über https laufen lassen, einige der Docker sind aktuell nur per http erreichbar.
Ich habe auch gelesen das man im nginx noch zusätzlich Userabfrage integrieren kann, das ist aber Prio 2.

Mein Plan wäre ich habe einen Nginx laufen wo ich einen Port über https nach draußen freigebe und alle anderen
Seiten über unter Pfade ereichbar sind

Zum Beispiel:
https://xxx -> Docker1 Port 80
https://xxx/hallo -> Docker2 Port 443
https://xxx/box -> Docker3 Port xxx
Zusätzlich wäre es cool auch andere Weseiten von anderen Geräten freigeben zu können
https://xxx/wasanders -> Anders Gerät Port 443

Ist dies so möglich?

Was ich angeschaut habe und nicht zum laufen bekommen habe ist?
- Docker Nginx1
- Docker nginx-proxy-manager (sieht sehr interresant aus)
- Nginx von der Synology direkt (Ich weiß hat nichts mit Docker zutun)

Ich hoffe ihr könnt mir helfen.
Schon mal Danke

mfg
userdaf
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.528
Punkte für Reaktionen
416
Punkte
103
Zu meinen Vorhaben, ich habe einige Docker laufen welche eine Weboberfläche besitzen.
Solche Sätze kommen zu standen, wenn unwissende Wissen von unwissenden übernehmen...
Docker ist eine von vielen Container Engines. Das was eine Container Engine ausführt ist ein Container und kein Docker. Das ist ungefähr genauso grausam, als wenn man jedes Auto unabhängig vom Hersteller und Model als "Mercedes Benz C-Klasse" bezeichnen würde....

Zum restlichen Inhalt: kann man machen, kann je Anwendung von ziemlich einfach bis schwierig werden - hängt von der jeweiligen Ziel-Anwendung ab, da man auf einmal mit CORS, Gültigkeit für Cookie nach Domain/Pfad, erwarteten Referrals, umschreiben von Links im Content (javascript, html, css,... ) oder umschreiben von Location Headers rumschlagen muss. Das kann beliebig hässlich werden. Bei subdomain-spezfisches Reverse Proxying bleibt dir viel von dem schmerzhaftem Kram erspart.

Ich kann dir anbieten auf das zu schauen was Du erarbeitest, sprich: docker-compose.yml und nginx.conf, und ggf. Feedback geben was anders gemacht werden muss.
 
  • Like
Reaktionen: blurrrr

userdaf

Benutzer
Mitglied seit
31. Mai 2020
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Danke für deine Antwort.

Den Weg über Subdomains habe ich schon mal gelesen, aber nicht verstanden wie der genau funktioniert.

Ich habe ja die Synology mit den Namen "nas" im Netzwerk, dann dazu die Domain von außen "example.spdns.de".
Bedeutet das, dass ich dann diese URLs am Ende hätte:

https://example.spdns.de --> Container 1
https://hallo.example.spdns.de --> Container 2
https://box.example.spdns.de --> Container 3
https://xxx.example.spdns.de --> Anders Gerät

Würde es dann auch mit diesen URLs gehen?
https://nas --> Container 1
https://hallo.nas --> Container 2
https://box.nas --> Container 3
https://xxx.nas --> Anders Gerät

ich hoffe ich habe das richitg verstanden.

mfg
userdaf
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.515
Punkte für Reaktionen
1.110
Punkte
194
Mir ist nicht klar, warum du zusätzlich einen NGINX betreiben willst / musst, obgleich DSM ab Werk einen funktionsfähigen Reverse-Proxy anbietet.
 

steje43

Benutzer
Mitglied seit
03. Dez 2011
Beiträge
666
Punkte für Reaktionen
35
Punkte
48
Ich habe das auch gedacht und dann auch schon deinen Post gelesen. Ich habe auch ein paar Container mit dem Revers-Provy von Synology am Laufen.
 
Zuletzt bearbeitet von einem Moderator:

userdaf

Benutzer
Mitglied seit
31. Mai 2020
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Du meinst den unter Systemsteuerung und Anwendungsportal?

Den habe ich auch aus probiert, aber da kann ich doch nur https erweitern und den Port umlegen
 

steje43

Benutzer
Mitglied seit
03. Dez 2011
Beiträge
666
Punkte für Reaktionen
35
Punkte
48
Genau den meinen wir, bei mir wird z.B. eine Subdomain von Nextcloud im Netz mit https auf http://localhost:XXXX umgeleitet.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.528
Punkte für Reaktionen
416
Punkte
103
Subdomains sind konkrete Einträge unterhalb einer Domain.

Um Subdomains zu verwenden, musst Du erst einmal eine Domain haben in der Du Subdomain-Einträge einpflegen kannst. Erst wenn die DNS-Namensauflösung funktionert kann man Reverse-Proxy Regeln auf Basis der Subdomains durchführen.

nginx ist es egal, ob es sich hierbei um Internet-Domains oder lokale Domains handelt. Viel wichtiger ist die Frage: wie kommen die Clients, die über den nginx auf die unterschiedlichen Dienste kommen sollen zu der Namensauflösung? Bei lokalen Domains musst Du den entsprechenden DNS-Server selbst betreiben UND die Clients in deinem lokalen Netzwerk müssen diesen dann auch als DNS-Server verwenden.

Man kann den nginx in der DS auch um manuell erstellte Regeln erweitern. Doch wenn aufgrund eines Fehlers in den Regeln der nginx nicht mehr startet, kannst Du im Zweifel den nginx ausser gefecht setzen, bis der Fehler behoben ist.

Ehrlich gesagt würde ich aber direkt Traefik im Container verwenden, da es erlaubt über Container-Labels die Reverse-Proxy-Regeln entspannt zu pflegen. Das ergibt aber nur sinn, wenn man seine Container mit docker-compose managed.

Du meinst den unter Systemsteuerung und Anwendungsportal?

Für einfach Fälle mit Subdomains reicht der vollkommen aus. Bei komplexeren Fällen oder Pfad-basierten Reverse-Proxy-Regeln MUSS man händisch Regeln definieren und einbinden.
 
  • Like
Reaktionen: Ulfhednir


 

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