в хедере Host: адрес (имя) того сервера из апстрима, что он выбрал?
у меня какая задача.
из одного шаблонного nginx.conf.j2 генерится много однотипных по логике конфигов для тестовых контуров.
и есть location, которые мне нужно направить на разные апи (другие команды, у них свой балансер как точка входа).
так вот хочется во всех конфигах иметь одинаковую "логику", тип
location /api1 { proxy_pass some_api1_dev1; }
...
location /api1 { proxy_pass some_api1_dev2; }
...
а вот апстримы генерить/ статично задать, как
upstream some_api1_dev1 { server some-api1-dev1.local }
upstream some_api1_dev2 { server some-api1-qa.local }
и т.п.
проблема в том, что эти внешние апи - это балансеры, которые откликаются только на свой server_name (их имя). а nginx по дефолту, если апстрим, какой-то не оч Host посылает (думаю, имя апстрима просто, а не выбранного сервера) :(
я бы в j2 вписал переменную, которая подставляет нужный хостнейм. Наверняка же вписывается уже где-то, значит можно ту же переменную подставить
Обсуждают сегодня