Welcome! Log In Create A New Profile

Advanced

подстановка переменных в имя апстрима.

March 01, 2017 11:06AM
Добрый день!

хочется странного, пока не понимаю, как бы это реализовать красивей.есть пачка конфигов, для различных виртуальных хостов. так же есть один общий набор локейшенов, который они все инклюдят. локейшенов очень много, они одинаковые но ведут на разные апстримы в каждом виртхосте. Упрощенно это выглядит следующим образом:

VHOST1.conf:

upstream upstream_vhost1_backend {
server host1;
server host2;
}

server {
server vhost1;
...
set $upstream_backend upstream_vhost1_backend;
include common_config;
}

VHOST2.conf:

upstream upstream_vhost2_backend {
server host3;
server host4;
}

server {
server vhost2;
...
set $upstream_backend upstream_vhost2_backend;
include common_config;
}

в common_config задается соответствующий локейшн:
...
location /somelocation {
proxy_pass http://$upstream_backend;
}

тут все хорошо. проблема начинается, когда в common_config нужно задать локейшены следующего вида:
location /somelocation/module1/ {
proxy_pass http://$upstream_module1;
}

location /somelocation/module2/ {
proxy_pass http://$upstream_module2;
}

location /somelocation/moduleN/ {
proxy_pass http://$upstream_moduleN;
}

проблема в том, что количество таких схожих локейшенов может расти и хотелось бы конфиг свернуть.
хочется получить что-то вроде

location ~ ^/somelocation/module(\d+)/ {
proxy_pass http://$upstream_module$1;
}

как это сделать по уму?
Subject Author Posted

подстановка переменных в имя апстрима.

syswipe March 01, 2017 11:06AM

Re: подстановка переменных в имя апстрима.

Andrey Kopeyko March 01, 2017 11:18AM

Re: подстановка переменных в имя апстрима.

syswipe March 01, 2017 11:35AM

Re: подстановка переменных в имя апстрима.

Andrey Kopeyko March 01, 2017 06:16PM

Re: подстановка переменных в имя апстрима.

ru@nginx.com March 02, 2017 07:18AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 212
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready