NGINX-Beispiel
NGINX bietet Proxy-Funktionen und Web-Server-Optionen. Im folgenden Beispiel wird nur der Lastenausgleich eingerichtet. Einige Funktionen wie Sticky Sessions sind in der kostenlosen Version nicht verfügbar und erfordern ein Upgrade auf NGINX Plus.
Frontend-Einstellungen
Für die Frontend-Einstellungen für NGINX konfigurieren Sie Server, die die Port- und Routing-Regeln enthalten.
• listen
Entspricht HAProxy bind, dem externen Port, mit dem die Anwendung kommuniziert.
• location
Routing-Regeln, basierend auf path genau wie in HAProxy.
◦ Der gesamte Datenverkehr wird standardmäßig an /location weitergeleitet und an die Upstream-Gruppe thingworx übergeben.
◦ Die Standortübereinstimmung für den Connection Server verwendet einen regulären Ausdruck, anstatt jeden Pfad aufzulisten. Dies wird an die Upstream-Gruppe cxserver übergeben.
Beispiel:
server {
listen 80;
# connection server paths
location ~ ^/Thingworx/(WS|WSTunnelClient|WSTunnelServer|TWS)\.* {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://cxserver;
}
# everything else to thingworx
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://thingworx;
}
}
Plattform-Backend-Einstellungen
Dieser Bereich enthält die Liste der Server, die Anforderungen und den Lastenausgleichsalgorithmus verarbeiten können.
• ip_hash
Behält die Anfrage für einen Server basierend auf der IP-Adresse bei. Sticky Sessions sind eine Funktion in NGINX Plus.
• server
Es gibt Einträge für jeden Server in der Liste.
• Es sind keine Integritätsprüfungen konfiguriert, aber wenn ein Server fehlschlägt, wird der Datenverkehr umgeleitet. Integritätsprüfungen sind eine Funktion von NGINX Plus.
Beispiel:
upstream thingworx {
ip_hash;
server platform1:80;
server platform2:80;
}
Backend-Einstellungen für Connection Server
• ip_hash
Behält die Anfrage für einen Server basierend auf der IP-Adresse bei. Dies entspricht source in HAProxy.
• Server
Es gibt Einträge für jeden Server in der Liste.
• Es sind keine Integritätsprüfungen konfiguriert, aber wenn ein Server fehlschlägt, wird der Datenverkehr umgeleitet. Integritätsprüfungen sind eine Funktion von NGINX Plus.
Beispiel:
upstream cxserver {
ip_hash;
server cxserver1:80;
server cxserver2:80;
}
Vollständiges Beispiel
worker_processes 5; ## Default: 1
events {
}
http {
resolver 127.0.0.11:53 valid=30s;
upstream thingworx {
ip_hash;
server platform1:80;
server platform2:80;
}
upstream cxserver {
ip_hash;
server cxserver1:80;
server cxserver2:80;
}
server {
listen 80;
# connection server paths
location ~ ^/Thingworx/(WS|WSTunnelClient|WSTunnelServer|TWS)\.* {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://cxserver;
}
# everything else to thingworx
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://thingworx;
}
}
}