Nginx负载均衡到不同IP地址上的等效端口

时间:2019-02-19 19:19:00

标签: nginx load-balancing

我需要在负载均衡的同一端口上的两个不同的上游服务器中运行多个服务。 我目前的配置如下:

upstream service0 {
    ip_hash;
    server 192.168.56.3:8000;
    server 192.168.56.4:8000;
}
upstream service1 {
    ip_hash;
    server 192.168.56.3:8001;
    server 192.168.56.4:8001;
}
upstream service2 {
    ip_hash;
    server 192.168.56.3:8002;
    server 192.168.56.4:8002;
}

server {
    listen 8000;
    location / {
        proxy_pass http://service0;
    }
}
server {
    listen 8001;
    location / {
        proxy_pass http://service1;
    }
}
server {
    listen 8002;
    location / {
        proxy_pass http://service2;
    }
}

是否可以使用嵌入式变量或任何其他选项来不配置多个上游服务和服务器? 我将$ server_port视为http核心模块http://nginx.org/en/docs/http/ngx_http_core_module.html#var_server_port中的嵌入式变量之一,但在上游模块中看不到任何等效变量。 http://nginx.org/en/docs/http/ngx_http_upstream_module.html

正在寻找这样的东西:

upstream service {
    ip_hash;
    server 192.168.56.3:$service_port;
    server 192.168.56.4:$service_port;
}

server {
    listen 8000;
    listen 8001;
    listen 8002;
    location / {
        proxy_pass http://service:$service_port;
    }
}

正在寻找类似或类似的内容,因为我不能在上游部分使用$ service_port。

是否可以在nginx中实现?

感谢有关此的任何帮助。

0 个答案:

没有答案