Esempio di NGINX
NGINX offre funzionalità proxy e opzioni del server Web. Nell'esempio riportato di seguito viene impostato solo il bilanciamento del carico. Alcune funzionalità, come le "sticky session", non sono disponibili nella versione gratuita e richiedono un aggiornamento a NGINX Plus.
Impostazioni front-end
Per le impostazioni front-end di NGINX, vengono configurati dei server che contengono le regole per porte e instradamento.
listen
Equivale a HAProxy bind e indica la porta esterna con la quale l'applicazione comunica.
location
Regole di instradamento basate su path come in HAProxy.
Per default, tutto il traffico viene indirizzato a / location e passa al gruppo thingworx a monte.
La voce corrispondente alla posizione per il server connessioni utilizza un'espressione regex anziché elencare ogni percorso. Questi passeranno al gruppo cxserver a monte.
Ad esempio:
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;
}
}
Impostazioni back-end della piattaforma
Questa sezione contiene l'elenco dei server che possono gestire le richieste e l'algoritmo di bilanciamento del carico.
ip_hash
Associa la richiesta a un server in modo permanente in base all'indirizzo IP. Le sticky session sono una funzionalità di NGINX Plus.
server
Esistono voci per ogni server nell'elenco.
Non vengono configurati controlli dello stato ma, in caso di errore di un server, il traffico viene reinstradato. I controlli dello stato sono una funzionalità di NGINX Plus.
Ad esempio:
upstream thingworx {
ip_hash;
server platform1:80;
server platform2:80;
}
Impostazioni back-end del server connessioni
ip_hash
Associa la richiesta a un server in modo permanente in base all'indirizzo IP. Equivale a source in HAProxy.
server
Esistono voci per ogni server nell'elenco.
Non vengono configurati controlli dello stato ma, in caso di errore di un server, il traffico viene reinstradato. I controlli dello stato sono una funzionalità di NGINX Plus.
Ad esempio:
upstream cxserver {
ip_hash;
server cxserver1:80;
server cxserver2:80;
}
Esempio completo
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;
}
}
}
È stato utile?