Всем привет! Подготовил конфиг, который проксирует запросы на ряд различных сервисов

через location.
Однако встала проблема, что не все сервисы могут запущены до поднятия самого nginx, вследствии чего он может не запускаться из-за отсутствия резолвинга по ДНС. Сделал попытку записать адрес проксируемого сервиса в переменную, как показано в доке https://www.nginx.com/blog/dns-service-discovery-nginx-plus/:
Т.к. все это работает в докере, то добавил в location resolver.
Запрос доходит до проксируемого сервиса, но инструкция proxy_redirect начинает отрабатывать циклически.
https://pastebin.com/7ufFBkvG - здесь пример одного такого location без использования переменных, в таком виде все работает.
Если же раскомментировать первые 3 строки и закомментировать четвертую, т.е. включить resolver и использование переменной, то начинаются циклические редиректы.
Можно ли это как-то побороть?

10 ответов

19 просмотров

Когда у тебя используется proxy_pass http://pgadmin_container/, nginx отрезает от URI запроса префикс /pgadmin. Если ты заносишь апстрим в переменную, то URI передаётся как есть, даже если ты добавляешь после переменной слеш, или даже если ты этот слеш вместе с именем апстрима занесёшь в переменную. Режь префикс вручную: location /pgadmin/ { resolver 127.0.0.11 valid=30s; set $upstream_pgadmin pgadmin_container; rewrite ^/pgadmin(/.*) $1 break; proxy_pass http://$upstream_pgadmin; ...

кокер чтоль?

Alex Vavilov- Автор вопроса

вообще-то, это - в профильный чат. а так - поставь require, например, в docker-compose.yml, чтобы дождаться, пока апстримы поднимутся. это - ещё один вариант

Alex Vavilov- Автор вопроса
kiosaku
вообще-то, это - в профильный чат. а так - поставь...

ну тут проблема вроде сугубо в конфигурации nginx за вариант спасибо, но там некоторые сервисы могут периодически отключать, из-за чего они будут отрубаться в nginx до перезагрузки, этого тоже хотелось бы избежать

На всякий случай напомню, что редиректы могут кешироваться браузером

Alex Vavilov- Автор вопроса
Johann
На всякий случай напомню, что редиректы могут кеши...

я помню, в инкогнито проверяю и с разных браузеров все равно циклический редирект (

Alex Vavilov
я помню, в инкогнито проверяю и с разных браузеров...

Странно... Но то, что префикс не режется, если имя апстрима в переменной, это точно, я на это натыкался. Точно нету слеша завершающего ни в имени апстрима, ни в proxy_pass? А то оно может его воспринять как URI запроса на апстрим.

Alex Vavilov- Автор вопроса

в proxy_pass был Убрал -вроде что-то работает, сейчас буду дальше все проверять Большое спасибо!

Alex Vavilov
в proxy_pass был Убрал -вроде что-то работает, сей...

Кстати Я тут глянул документацию по pgadmin А зачем вообще вся это хрень с переписыванием урлов, а особенно с sub_filter, если согласно документации он прекрасно себе поддерживает любой префикс через спецхедер X-Script-Name? https://www.pgadmin.org/docs/pgadmin4/development/container_deployment.html#http-via-nginx Второй пример sub_filter ощутимо просаживает производительность

Похожие вопросы

Обсуждают сегодня

1. https://www.kaggle.com/code/ahmadrezagholami2001/housing-estimation-linear-regression 2. https://www.kaggle.com/code/ahmadrezagholami2001/uncovering-quality-in-wines-logis...
Ahmadreza
1
Hi! Could you please upvote my new notebook? thanks a lot. https://www.kaggle.com/code/melissamonfared/anime-character-generation-dsgan-gan
məru
4
upvote plz https://www.kaggle.com/code/bassetkerouche/swapping-face?scriptVersionId=207300096
benkerrouche Statoinary
1
-- Привет всем. -- Есть csv, проблема в том что он содержит очень много повторов по столбцам и по строкам. -- Решил перекинуть это в базу данных, чтобы было проще. Но я не ша...
Oleg Ivanov
1
Как считаете - вопрос на собесе: «Как быстрее всего запустить ec2 машину в aws (в чистом аккаунте) и показать вывод от любой команды с нее» не очень ли сложный для условного м...
Sergey
50
Господа, у меня вопрос. Что вообще такое этот ваш data science и data scientists? А то гуглю, а мне какую-то расплывчатую фигню говорят.
Inkosta
44
Исходя из ваших комментариев, получается, что чтобы получить марты в CH из данных в PG, неправильно тянуть сырые данные в CH и там их обрабатывать, лепить справочники и джойни...
unhingedlunatic
42
Hi could you please help me with my two new projects? https://www.kaggle.com/code/hesankazemnia/rice-image-classification-cnn-pytorch https://www.kaggle.com/code/hesankazemnia...
Hesan
6
hi, Can you upvote? https://www.kaggle.com/code/durjoychandrapaul/rag-q-a-system-by-langchain-huggingface-for-pdf?scriptVersionId=204704280
A
1
Could you upvote and comment please? https://www.kaggle.com/code/tatianapetrushkevich/beginner-images https://www.kaggle.com/code/tatianapetrushkevich/python-for-beginners1 ...
Tazziyana
7
Карта сайта