<HTML><BODY>Ну, хорошо. Пусть в моем примере вообще нет хоста.<br>Тогда что такое <a href="https://test.com" target="_blank" data-mce-href="https://test.com">https://test.com</a> ? Давайте назовем строкой запроса, суть проблемы от этого не меняется.<br>В документации так:<br>"<code>$host<br></code> в порядке приоритета: имя хоста из строки запроса, или имя хоста из поля “Host” заголовка запроса.....,"<br><br>Объясните мне, пожалуйста, что понимать как "имя хоста из строки запроса" и "имя хоста из поля “Host” заголовка запроса".<br>Желательно с примером для курла, как особо одаренному.<br><br>Далее, Вы приводите пример с netcat. Аналогично можно использовать telnet.<br>Только ведь после получения Location ему нужно следовать. Полученный Location: <a href="http://nginx.org/" target="_blank" data-mce-href="http://nginx.org/">http://nginx.org/</a> куда возвращает? На HEAD <a href="http://nginx.org/" target="_blank" data-mce-href="http://nginx.org/">http://nginx.org/</a> HTTP/1.1.<br><br>То же самое, только не вводить построчно:<br><br>curl -ILH 'Host: www.nginx.org' <a href="https://nginx.org/">https://nginx.org/</a> <br><br>И точно такое же зацикливание.<br>Пусть мои примеры неверны. Но работают, и приводят к зацикливанию при псевдо-валидном запросе.<br>По большому счету, меня интересует только, как это побороть.<br><br><br><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">
Понедельник, 7 августа 2017, 13:37 +03:00 от Валентин Бартенев <vbart@nginx.com>:<br>
<br>
<div id="">
<div class="js-helper js-readmsg-msg">
<style type="text/css"></style>
<div>
<base target="_self" href="https://e.mail.ru/">
<div id="style_15021022300000000331_BODY">On Monday 07 August 2017 13:25:32 Валентин Бартенев wrote:<br>
> On Monday 07 August 2017 09:01:39 CoDDoC wrote:<br>
> > <br>
> > Спасибо.<br>
> > <br>
> > Только Вы говорите об URI "/", а вопрос был об URL, точнее - о зацикливании, связанном с неправильной (ИМХО) интерпретацией в ngx переменной $host. Как она ДОЛЖНА обрабатываться - сказано в доке, что имеем ПО ФАКТУ - в моем примере.<br>
> <br>
> Ещё раз. Вы неправильно интерпретируете команду curl, отсюда и считаете,<br>
> что поведение nginx отличается от описанного в документации. Ваш пример<br>
> неверен.<br>
> <br>
> И далее на этом неверном предположении строите все остальные выводы.<br>
> <br>
> Вы пишите:<br>
> <br>
> | Вот такой случай:<br>
> | curl -ILH 'Host: <a href="http://www.test.com" target="_blank">www.test.com</a>' <a href="https://test.com" target="_blank">https://test.com</a><br>
> |<br>
> | Если бы переменная $host получила значение в порядке приоритета, оно было бы test.com (имя хоста из строки запроса).<br>
> <br>
> Нет не было бы. Потому что в строке запроса, которую отправляет данная<br>
> команда curl нет "test.com". Там нет вообще хоста.<br>
> <br>
[..]<br>
<br>
<br>
Вот наглядный пример, всё работает как описано<br>
в документации и должно быть по RFC:<br>
<br>
<br>
% netcat nginx.org 80<br>
HEAD <a href="http://nginx.org/" target="_blank">http://nginx.org/</a> HTTP/1.1<br>
Host: <a href="http://www.nginx.org" target="_blank">www.nginx.org</a><br>
<br>
HTTP/1.1 200 OK<br>
Server: nginx/1.13.3<br>
Date: Mon, 07 Aug 2017 10:34:37 GMT<br>
Content-Type: text/html; charset=utf-8<br>
Content-Length: 6680<br>
Last-Modified: Tue, 11 Jul 2017 15:45:07 GMT<br>
Connection: keep-alive<br>
Keep-Alive: timeout=15<br>
ETag: "5964f283-1a18"<br>
Accept-Ranges: bytes<br>
<br>
HEAD / HTTP/1.1<br>
Host: <a href="http://www.nginx.org" target="_blank">www.nginx.org</a><br>
<br>
HTTP/1.1 301 Moved Permanently<br>
Server: nginx/1.13.3<br>
Date: Mon, 07 Aug 2017 10:34:53 GMT<br>
Content-Type: text/html<br>
Content-Length: 185<br>
Connection: keep-alive<br>
Keep-Alive: timeout=15<br>
Location: <a href="http://nginx.org/" target="_blank">http://nginx.org/</a><br>
<br>
_______________________________________________<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" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a><br data-mce-bogus="1"></div>
<base target="_self" href="https://e.mail.ru/">
</div>
</div>
</div>
</blockquote>
<br></BODY></HTML>