У меня несколько служб, работающих на двух разных вышестоящих серверах на тех же портах, которые мне нужны для балансировки нагрузки.У меня есть следующая конфигурация:
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 core 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 в секции upstream.
Возможно ли этодостичь в nginx?
Цените любую помощь по этому поводу.