Reverse-Proxy (Traefik, nginx, etc)
Um den OPC Router im Docker hinter einem Reverse-Proxy wie z.B. Traefik oder nginx zu betreiben, müssen einige Einstellungen vorgenommen werden. Dabei ist zu beachten, dass der OPC Router sowohl HTTP- als auch WebSocket-Verbindungen verwendet, die vom Reverse-Proxy korrekt weitergeleitet werden müssen.
Dieser Abschnitt beschreibt nur die notwendigen Schritte für das Web-Management. Für den REST-Server oder andere Plug-Ins sind möglicherweise weitere Anpassungen erforderlich.
Um die Netzwerkperformance zu optimieren, empfehlen wir bei Verwendung eines Reverse-Proxys das SSL-Offloading im Reverse-Proxy und nicht im OPC Router zu aktivieren. Dies gilt insbesondere dann, wenn der Netzwerkverkehr zwischen dem Reverse-Proxy und dem OPC Router als sicher angesehen werden kann.
Path-Präfix
Um den OPC Router über einen Reverse-Proxy mit Pfad-Präfix zu erreichen, müssen zwei Umgebungsvariablen gesetzt werden. Die Umgebungsvariable WEB_BASE_PATH
gibt den Pfad-Präfix an, den der Reverse-Proxy verwendet. Die Umgebungsvariable ASPNETCORE_FORWARDEDHEADERS_ENABLED
muss auf true
gesetzt werden, damit der OPC Router die vom Reverse-Proxy übermittelten Header-Informationen verarbeiten kann.
Beispielhafte Traefik-Konfiguration:
docker run ... \
-e "WEB_BASE_PATH=/opc-router" \
-e ASPNETCORE_FORWARDEDHEADERS_ENABLED=true \
--label "traefik.http.routers.reverse-proxy.rule=PathPrefix(`/opc-router`)"
Hostname
Um den OPC Router unter einem bestimmten Hostnamen zugänglich zu machen, können Sie einen Reverse-Proxy einrichten. Dabei müssen Sie darauf achten, dass der Reverse-Proxy-Host selbst unter der angegebenen DNS-Adresse erreichbar ist. Außerdem muss die Umgebungsvariable ASPNETCORE_FORWARDEDHEADERS_ENABLED
auf true
gesetzt werden, damit der OPC Router die Header-Informationen des Reverse-Proxys korrekt verarbeiten kann.