Ejemplo de NGINX
NGINX proporciona funciones de proxy y opciones de servidor Web. En el siguiente ejemplo solo se configura el equilibrador de la carga. Algunas funciones, como las sesiones que se pueden recordar, no están disponibles en la versión gratuita y requieren una actualización a NGINX Plus.
Configuración de front-end
Para la configuración de front-end de NGINX, el usuario debe configurar los servidores, que incluyen las reglas de puerto y distribución.
• listen
Equivalente a HAProxy bind, el puerto externo con el que se comunicará la aplicación.
• location
Reglas de distribución, basadas en path, igual que en HAProxy.
◦ Todo el tráfico va a la ubicación / por defecto y pasa al grupo thingworx ascendente.
◦ La coincidencia de ubicaciones de Connection Server utiliza un regex en lugar de mostrar cada ruta. Estas se transferirán al grupo cxserver ascendente.
Por ejemplo:
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;
}
}
Configuración de back-end de plataforma
En esta sección se proporcionan la lista de servidores que pueden gestionar solicitudes y el algoritmo de equilibrio de la carga.
• ip_hash
Permite hacer que la solicitud se pueda recordar en un servidor en función de la dirección IP. Las sesiones que se pueden recordar son una función de NGINX Plus.
• server
Hay entradas para cada servidor de la lista.
• No se han configurado verificaciones de estado, pero si falla un servidor, el tráfico se redirecciona. Las comprobaciones de estado son una función de NGINX Plus.
Por ejemplo:
upstream thingworx {
ip_hash;
server platform1:80;
server platform2:80;
}
Configuración de back-end de Connection Server
• ip_hash
Permite hacer que la solicitud se pueda recordar en un servidor en función de la dirección IP. Esto es equivalente a source en HAProxy.
• servidor
Hay entradas para cada servidor de la lista.
• No se han configurado verificaciones de estado, pero si falla un servidor, el tráfico se redirecciona. Las comprobaciones de estado son una función de NGINX Plus.
Por ejemplo:
upstream cxserver {
ip_hash;
server cxserver1:80;
server cxserver2:80;
}
Ejemplo 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;
}
}
}