NGINX。 OpenShift 集群之间的负载平衡。如何获取上游服务器的名称?
NGINX. Load balancing between OpenShift clusters. How get name of server under upstream?
我有一个在两个 OpenShift 集群上运行的应用程序,我想使用 Nginx(免费)进行负载平衡。
我的 OS 路由使用 Passthrought 终止类型,所以我需要传递 ssl_name 和主机 headers 来解析服务。
我的 Nginx conf 的一部分:
upstream backend {
server.com.one
server.com.two max_fails ...
}
server {
...
proxy_ssl_name $proxy_host;
proxy_set_header Host $proxy_host;
proxy_pass https://backend;
}
变量$proxy_hostreturn后端,不是server.com.one或server.com.two.
如何获取上游下的服务器名称?
也许我可以在 proxy_ssl_name?
中传递两个服务器的连接之类的东西
其他解决方案?
您可以将每个上游包装到中间服务器块:
upstream backend {
# server.com.one
127.127.0.1:2000;
# server.com.two
127.127.0.2:2000 max_fails ...;
}
server {
proxy_pass https://backend;
}
server {
listen 127.127.0.1:2000;
location / {
proxy_pass https://server.com.one;
}
}
server {
listen 127.127.0.2:2000;
location / {
proxy_pass https://server.com.two;
}
}
我有一个在两个 OpenShift 集群上运行的应用程序,我想使用 Nginx(免费)进行负载平衡。
我的 OS 路由使用 Passthrought 终止类型,所以我需要传递 ssl_name 和主机 headers 来解析服务。
我的 Nginx conf 的一部分:
upstream backend {
server.com.one
server.com.two max_fails ...
}
server {
...
proxy_ssl_name $proxy_host;
proxy_set_header Host $proxy_host;
proxy_pass https://backend;
}
变量$proxy_hostreturn后端,不是server.com.one或server.com.two.
如何获取上游下的服务器名称? 也许我可以在 proxy_ssl_name?
中传递两个服务器的连接之类的东西其他解决方案?
您可以将每个上游包装到中间服务器块:
upstream backend {
# server.com.one
127.127.0.1:2000;
# server.com.two
127.127.0.2:2000 max_fails ...;
}
server {
proxy_pass https://backend;
}
server {
listen 127.127.0.1:2000;
location / {
proxy_pass https://server.com.one;
}
}
server {
listen 127.127.0.2:2000;
location / {
proxy_pass https://server.com.two;
}
}