Reverse Proxy für Domains mit weitergehenden Konfigurationen

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Ben2013

Benutzer
Registriert
01. Nov. 2021
Beiträge
147
Reaktionspunkte
14
Punkte
18
Hallo,

der Reverse Proxy von Synology hat viele Optionen nicht, die man für manche Webanwendungen benötigt.

Wer auf die abgeschnittenen Funktionen angewiesen ist, kann z.B. einen Docker Container mit dem Image jc21/nginx-proxy-manager:latest laufen lassen.

Bei diesem Image ist auch eine UI mit dabei, über die der Proxy eingestellt werden kann.

Man muss bei diesem Proxy nicht mehr für eine Domain zwei Einträge erfassen, um für http und https Zugriffe weiterleiten zu können.

Der nginx Proxy verwaltet selbstständig Letsencrypt Zertifikate.

Kann ich nur wärmstens empfehlen.

Hier ist eine docker-compose.yaml Datei:

version: '3.8'
services:
npm:
image: jc21/nginx-proxy-manager:latest
container_name: nginxproxy
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81' # Admin UI → 81
volumes:
- ./npm-data:/data
- ./npm-ssl:/etc/letsencrypt
environment:
DB_MYSQL_HOST: db
DB_MYSQL_USER: npm
DB_MYSQL_PASSWORD: npm123
DB_MYSQL_NAME: npm
depends_on:
db:
condition: service_healthy
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:81"]
interval: 30s
timeout: 10s
retries: 3

db:
image: mariadb:latest
container_name: db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: npm123
MYSQL_DATABASE: npm
MYSQL_USER: npm
MYSQL_PASSWORD: npm123
volumes:
- ./db-data:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
start_period: 60s # Zeit zum ersten Start geben
interval: 30s # Prüffrequenz
timeout: 5s
retries: 3
 
[Korinthenkack]Das ist keine Datei, sondern höchstens deren Inhalt. Höchstens deswegen, weil da die Einrückungen verlustig gegangen sind. Damit so etwas nicht passiert, fügt man so etwas als Code ein.[/Korinthenkack]
 
  • Like
Reaktionen: luddi
Aber wohl nur, wenn die Webstation installiert ist. Ansonsten müsste Port 80/443 eigentlich frei sein. (s. "netstat -tulpen")
 
Aber der Nginx läuft doch immer. Wenn die nicht installiert ist, dann leitet er einen doch immer auf DSM. Also bei 80 auf 5000 und 443 auf 5001. Oder ist es inzwischen anders?
 
  • Like
Reaktionen: luddi
Weiß ich grad nicht :unsure: Meines Erachtens schnappt sich nur die Webstation 80/443, ansonsten halt 5000/5001 für den DSM.

Edit: Hast vermutlich Recht. Ich hab grad mal die Webstation gestoppt. Dann leitet http://ds1522 auf http://ds1522:5000 weiter und https://ds1522 auf https://ds1522:5001. Also sollten Port 80/443 in jedem Fall belegt sein.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: luddi
Man müsste z.B. wie folgt vorgehen wenn man von außerhalb über NAT am Router auf sein NAS über 80/443 kommen möchte.

In Router (Fritz!Box) die Portfreigaben wie folgt eintragen:
Port extern gewünscht --> 80 bzw. 443
Und Port an Gerät --> 8080 bzw. 4443

1776016635285.png


Und dementsprechend den nginx-proxy-manager container wie folgt konfigurieren:
YAML:
    ports:
      - "8080:80"
      - "81:81"
      - "4443:443"

Dann klappt das auch um den nginx-proxy-manager direkt von außerhalb auf dem NAS zu erreichen.
Alles was man dann auf der Webstation hostet, muss dann natürlich explizit über den proxy bedient werden.
 
Das hat aber den Nachteil, dass man von intern den Proxy nicht nutzen kann, weil man sonst immer den Port angeben muss. Ansonsten läuft das ja übers Internet.
 
Das ist richtig, ich wollte ja nur die Möglichkeit aufzeigen um den docker sauber zu konfigurieren.
Auf andere Details gehe ich hier nicht ein.
 
  • Like
Reaktionen: JohneDoe
Eine andere Möglichkeit wäre, aber von der halte ICH persönlich nichts, MACVLAN. Das funktioniert dann zwar, aber man hat neue/andere Probleme/Baustellen. Ich bin ein Fan von Reverse Proxy in einer kleinen VM. Dann hat man da direkt eine Schicht Isolation dazwischen und keine Konflikte mehr.
 
  • Like
Reaktionen: luddi

Additional post fields

 

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