NGINX 範例
NGINX 提供 Proxy 功能與 Web 伺服器選項。下列範例僅設定負載平衡器。某些功能 (例如黏性工作階段) 在免費版本中並不提供,需要升級至 NGINX Plus。
前端設定
針對 NGINX 的前端設定,您可以配置包含埠與路由規則的伺服器。
listen
等同於 HAProxy bind,亦即與應用程式通訊的外部埠。
location
路由規則,以 path 為基礎 (就像在 HAProxy 中一樣)。
依預設,所有流量都會轉至 / 位置,並傳遞至上游 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;
}
}
}
這是否有幫助?