Re: Зацикливание на редиректе

Валентин Бартенев vbart на nginx.com
Пн Авг 7 10:37:06 UTC 2017


On Monday 07 August 2017 13:25:32 Валентин Бартенев wrote:
> On Monday 07 August 2017 09:01:39 CoDDoC wrote:
> > 
> > Спасибо.
> > 
> > Только Вы говорите об URI "/", а вопрос был об URL, точнее - о зацикливании, связанном с неправильной (ИМХО) интерпретацией в ngx переменной $host. Как она ДОЛЖНА обрабатываться - сказано в доке, что имеем ПО ФАКТУ - в моем примере.
> 
> Ещё раз.  Вы неправильно интерпретируете команду curl, отсюда и считаете,
> что поведение nginx отличается от описанного в документации.  Ваш пример
> неверен.
> 
> И далее на этом неверном предположении строите все остальные выводы.
> 
> Вы пишите:
> 
> | Вот такой случай:
> | curl -ILH 'Host: www.test.com' https://test.com
> |
> | Если бы переменная $host получила значение в порядке приоритета, оно было бы test.com (имя хоста из строки запроса).
> 
> Нет не было бы.  Потому что в строке запроса, которую отправляет данная
> команда curl нет "test.com".  Там нет вообще хоста.
> 
[..]


Вот наглядный пример, всё работает как описано
в документации и должно быть по RFC:


% netcat nginx.org 80
HEAD http://nginx.org/ HTTP/1.1
Host: www.nginx.org

HTTP/1.1 200 OK
Server: nginx/1.13.3
Date: Mon, 07 Aug 2017 10:34:37 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 6680
Last-Modified: Tue, 11 Jul 2017 15:45:07 GMT
Connection: keep-alive
Keep-Alive: timeout=15
ETag: "5964f283-1a18"
Accept-Ranges: bytes

HEAD / HTTP/1.1
Host: www.nginx.org

HTTP/1.1 301 Moved Permanently
Server: nginx/1.13.3
Date: Mon, 07 Aug 2017 10:34:53 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Keep-Alive: timeout=15
Location: http://nginx.org/



Подробная информация о списке рассылки nginx-ru