NGINX 예
NGINX는 프록시 기능 및 웹 서버 옵션을 제공합니다. 다음 예에서는 부하 분산만 설정합니다. 고정 세션과 같은 일부 기능은 무료 버전에서 사용할 수 없으므로 NGINX Plus로 업그레이드해야 합니다.
프런트엔드 설정
NGINX에 대한 프런트엔드 설정의 경우 포트 및 라우팅 규칙을 포함하는 서버를 구성합니다.
listen
응용 프로그램이 통신하는 외부 포트인 HAProxy bind와 동일합니다.
location
HAProxy와 마찬가지로 path를 기반으로 하는 라우팅 규칙입니다.
모든 트래픽은 기본적으로 / 위치로 이동하고 업스트림 thingworx 그룹으로 전달됩니다.
Connection Server에 대한 위치 일치는 각 경로를 나열하는 대신 regex를 사용합니다. 이는 업스트림 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;
}
Connection Server 백엔드 설정
ip_hash
IP 주소를 기반으로 요청을 서버에 고정합니다. HAProxy의 source 에 해당합니다.
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;
}
}
}
도움이 되셨나요?