<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Понятно, просто изначально проблема была немного другой. <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">В location /test/ не было указано никаких резолверов, и он проксировал на тестовый инстанс elk, который со временем удалили, при этом перестало работать проксирование и на основной elk, который находится в корневом локейшене. Пользователи стали получать - "504 Gateway Time-out". В error.log при этом было</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">2017/12/07 03:21:01 [emerg] 16478#0: host not found in upstream "<a href="http://search-testing.us-west-1.es.amazonaws.com">search-testing.us-west-1.es.amazonaws.com</a>" in /etc/nginx/conf.d/elk.conf:46<br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"></div><div class="gmail_default" style="font-family:verdana,sans-serif">Это тоже нормальное поведение, что если в любом из локейшенов в пределах одного сервера, перестает резолвиться апстрим, то перестает работать весь сервер? Я пробовал воспроизвести проблему, но не получилось. Единственное отличие это то, что в первом случае, когда стал не доступен корневой апстрим, с момента запуска nginx до момента возникновения проблемы прошел месяц. Такое ощущение, что сбросились какие то кеши.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-12-07 14:45 GMT+02:00 Maxim Dounin <span dir="ltr"><<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello!<br>
<span class=""><br>
On Thu, Dec 07, 2017 at 02:31:54PM +0200, Alex Domoradov wrote:<br>
<br>
> Привет всем, столкнулся с непонятным поведением<br>
<br>
</span>[...]<br>
<span class=""><br>
> с этой частью никаких проблем нет, она работает как и проложено. Но в этом<br>
> же сервере есть один тестовый локейшен<br>
><br>
>    location /test/ {<br>
>         resolver 172.23.16.2 valid=10s;<br>
>         resolver_timeout 10s;<br>
>         proxy_pass <a href="http://fake-upstream.example.com/" rel="noreferrer" target="_blank">http://fake-upstream.example.<wbr>com/</a>;<br>
<br>
</span>[...]<br>
<span class=""><br>
> Создаю временную запись <a href="http://fake-upstream.example.com" rel="noreferrer" target="_blank">fake-upstream.example.com</a> с ttl 60s и указываю на<br>
> свой домен <a href="http://sys-adm.org.ua" rel="noreferrer" target="_blank">sys-adm.org.ua</a>. Все работает, потом удаляю запись, проверяю что<br>
> на сервере с nginx она тоже не видится<br>
><br>
> # host <a href="http://fake-upstream.example.com" rel="noreferrer" target="_blank">fake-upstream.example.com</a> 172.23.16.2<br>
> Using domain server:<br>
> Name: 172.23.16.2<br>
> Address: 172.23.16.2#53<br>
> Aliases:<br>
><br>
> Host <a href="http://fake-upstream.example.com" rel="noreferrer" target="_blank">fake-upstream.example.com</a> not found: 3(NXDOMAIN)<br>
><br>
> но при этом nginx все так же проксирует запросы, которые попадают в этот<br>
> location. Это так и задумано?<br>
<br>
</span>Да.  Имена, явно написанные в конфиге, резолвятся на этапе чтения<br>
конфигурации.  Если они изменились и надо обновить конфигурацию -<br>
следует сказать nginx'у, чтобы он перезагрузил конфигурацию, см.<br>
<a href="http://nginx.org/ru/docs/control.html#reconfiguration" rel="noreferrer" target="_blank">http://nginx.org/ru/docs/<wbr>control.html#reconfiguration</a>.<br>
<br>
Исключения - "server ... resolve" в nginx-plus<br>
(<a href="http://nginx.org/ru/docs/http/ngx_http_upstream_module.html#resolve" rel="noreferrer" target="_blank">http://nginx.org/ru/docs/<wbr>http/ngx_http_upstream_module.<wbr>html#resolve</a>)<br>
и случаи, когда в proxy_pass используются переменные, и<br>
соответственно имена не известны в момент парсинга конфигурации.<br>
В этих случаях будет использован resolver.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Maxim Dounin<br>
<a href="http://mdounin.ru/" rel="noreferrer" target="_blank">http://mdounin.ru/</a><br>
______________________________<wbr>_________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/<wbr>mailman/listinfo/nginx-ru</a></font></span></blockquote></div><br></div>