Exemple NGINX
NGINX fournit des fonctionnalités de proxy et des options de serveur Web. L'exemple suivant illustre uniquement la configuration de l'équilibreur de charge. Certaines fonctions comme les sessions permanentes ne sont pas disponibles dans la version gratuite et nécessitent une mise à niveau vers NGINX Plus.
Paramètres front-end
Pour les paramètres front-end de NGINX, vous configurez les serveurs, qui contiennent les règles de port et de routage.
listen
Similaire au paramètre bind HAProxy, il s'agit du port externe avec lequel l'application communique.
location
Règles de routage, basées sur path comme pour HAProxy.
Par défaut, l'ensemble du trafic est renvoyé vers / et transmis au groupe thingworx en amont.
La correspondance d'emplacement du serveur de connexion utilise une expression régulière pour éviter de répertorier chaque chemin. Ces données sont transmises au groupe cxserver en amont.
Par exemple :
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;
}
}
Paramètres back-end de la plateforme
Cette section répertorie les serveurs pouvant gérer les requêtes et l'algorithme d'équilibrage de charge.
ip_hash
Rend la demande persistante sur un serveur en fonction de l'adresse IP. Les sessions persistantes sont une fonction de NGINX Plus.
server
Utilisé pour chaque serveur de la liste.
Aucun contrôle d'intégrité n'est configuré, mais en cas d'échec d'un serveur, le trafic est rerouté. Les contrôles d'intégrité sont une fonction de NGINX Plus.
Par exemple :
upstream thingworx {
ip_hash;
server platform1:80;
server platform2:80;
}
Paramètres back-end du serveur de connexion
ip_hash
Rend la demande persistante sur un serveur en fonction de l'adresse IP. Similaire à source dans HAProxy.
server
Utilisé pour chaque serveur de la liste.
Aucun contrôle d'intégrité n'est configuré, mais en cas d'échec d'un serveur, le trafic est rerouté. Les contrôles d'intégrité sont une fonction de NGINX Plus.
Par exemple :
upstream cxserver {
ip_hash;
server cxserver1:80;
server cxserver2:80;
}
Exemple complet
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;
}
}
}
Est-ce que cela a été utile ?