Пример NGINX
NGINX предоставляет возможности прокси и опции веб-сервера. В следующем примере выполняется настройка только балансировщика нагрузки. Некоторые функции, такие как закрепленные сессии, недоступны в бесплатной версии и требуют обновления до NGINX Plus.
Интерфейсные настройки
Для настроек интерфейсов для NGINX можно сконфигурировать серверы, которые содержат правила порта и маршрутизации.
listen
Как и для опции bind HAProxy, требуется внешний порт, к которому будет обращаться приложение.
location
Правила маршрутизации на основе path, как и для HAProxy.
Весь трафик идет в расположение "/" по умолчанию и передается в родительскую группу thingworx.
В сопоставлении с расположением для сервера соединений вместо перечисления каждого пути используется регулярное выражение. Они передаются в родительскую группу cxserver.
Например:
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;
}
}
Настройки внутреннего сервера платформы
В этом разделе перечислены серверы, которые могут обрабатывать запросы и алгоритм балансировки нагрузки.
ip_hash
Делает запрос прикрепленным к серверу на основе IP-адреса. Прикрепленные сеансы являются функцией NGINX Plus.
server
Имеются записи для каждого сервера в списке.
Проверки работоспособности не настроены, но трафик перенаправляется при сбое сервера. Проверки работоспособности являются функцией NGINX Plus.
Например:
upstream thingworx {
ip_hash;
server platform1:80;
server platform2:80;
}
Настройки внутреннего сервера соединений
ip_hash
Делает запрос прикрепленным к серверу на основе IP-адреса. Это эквивалентно source в HAProxy.
server
Имеются записи для каждого сервера в списке.
Проверки работоспособности не настроены, но трафик перенаправляется при сбое сервера. Проверки работоспособности являются функцией NGINX Plus.
Например:
upstream cxserver {
ip_hash;
server cxserver1:80;
server cxserver2:80;
}
Полный пример
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;
}
}
}
Было ли это полезно?