Я использую nginx вместе с вышестоящим приложением uwsgi. Приложение uwsgi использует AWS Cloudmap для обнаружения сервисов.
Проблема, с которой я столкнулся, заключается в том, что облачная карта использует разрешение DNS для хостов uwsgi. Кажется, что uwsgi разрешает и кэширует все, что попадает в uwsgi_pass.
например в uwsgi conf у меня есть строчка uwsgi_pass uwsgi://web.sandbox:8000;
Это означает, что сервер nginx работает нормально, пока поле в DNS не будет удалено или заменено. Затем я получаю сообщение об ошибке, говорящее, что nginx не может подключиться, потому что он пытается перейти на старый несуществующий ящик.
No route to host) while connecting to upstream, client: 12.151.32.34, server: sandbox.mydomain.com, request: "GET /member/api/user/ HTTP/1.1", upstream: "uwsgi://172.30.1.89:8000"
Я пытался использовать resolver_timeout 0s;
, но это не влияет на uwsgi_pass.
DNS TTL установлен на 10 секунд, поэтому nginx не соблюдает это.
Как заставить uwsgi_pass либо соблюдать TTL, либо каждый раз разрешать домен?