<div dir="ltr">Hi!<div><div class="gmail_extra"><br><div class="gmail_quote">2017-03-23 19:00 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></blockquote><div><br></div><div>Спасибо за скорый и развернутый ответ. </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Документация о таком поведение - явно говорит,<br>
<a href="http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_set_header" rel="noreferrer" target="_blank">http://nginx.org/ru/docs/http/<wbr>ngx_http_proxy_module.html#<wbr>proxy_set_header</a>:<br>
<br>
: Директивы наследуются с предыдущего уровня при условии, что на<br>
: данном уровне не описаны свои директивы proxy_set_header.<br>
<br>
Не стоит удивляться такому поведению. Вместо этого - стоит его<br>
понять и пользоваться преимуществами.<br></blockquote><div><br></div><div>Читал.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=""><br>
> 2) Если делаешь proxy_set_header дважды (иногда пересекается из-за<br>
> include), то получаешь два хедера в HTTP запросе(от чего некоторые backends<br>
> сходят с ума, когда видят два хедера Host(например).<br>
> Почему не брать значение из последнего proxy_set_header?<br>
<br>
</span>В HTTP вполне допустимо использование нескольких одинаковых<br>
заголовков, более того - явно специфицировано, когда можно, а<br>
когда - нельзя, и как трактовать. И во многих случаях это<br>
используется.<br>
<br>
Было бы странно ограничивать людей в том, что они могут написать в<br>
конфиге, причём совсем не так, как специфицирует используемый<br>
протокол.<br></blockquote><div><br></div><div>А какое из значений двух хедеров "Host" будет использовать NGINX для определения server_name?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=""><br>
> Поймите правильно, не хочется писать proxy_set_header в каждом (вложенном<br>
> тоже?) локейшене, а использовать наследие.<br>
<br>
</span>Не пишите, кто же вас заставляет.<br>
<br>
В случае правильно и грамотно написанной конфигурации - обычно<br>
хватает одного набора директив proxy_set_header на уровне http,<br>
возможно - с отдельными вкраплениями "специальных" наборов.<br></blockquote><div><br></div><div>Так и есть, но у меня меняется хедер Host на некоторых locations,</div><div>что-бы отправить "сквозной" запрос на нужный мне микросервис внутри бэкэнда,</div><div>без использования "прослойки"..</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Если очень нужно вносить локальные изменения в конкретных<br>
location'ах - можно использовать директиву include с неким базовым<br>
набором, дополняя его по необходимости. Но если вы регулярно<br>
сталкиваетесь с подобной проблемой - скорее всего вы что-то<br>
делаете не так.<br></blockquote><div><br></div><div>Так и решил, но выглядет не очень кошерно...</div></div><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Yours sincerely,<br>Vladimir Getmanshchuk</div>
</div></div></div>