http 401

Igor Sysoev is at rambler-co.ru
Tue Mar 7 15:41:52 MSK 2006


On Tue, 7 Mar 2006, Rommer wrote:

> Igor Sysoev wrote:
>> On Tue, 7 Mar 2006, Rommer wrote:
>> 
>>> Igor Sysoev wrote:
>>> 
>>>> On Mon, 6 Mar 2006 rommer at active.by wrote:
>>>> 
>>>>>> Igor Sysoev wrote:
>>>>>> 
>>>>>>> On Mon, 6 Mar 2006, Rommer wrote:
>>>>>>> 
>>>>>>>> Почему, когда back-end выдает HTTP/1.0 401 Not Unauthorized nginx'у
>>>>>>>> nginx отдаёт клиету 502 Bad Gateway?
>>>>>>>> 
>>>>>>>> Как можно заставить nginx нормально пропускать такие ответы?
>>>>>>> 
>>>>>>> 
>>>>>>> Должно работать. Нужен отладочный лог.
>>>>>>> 
>>>>>> 
>>>>>> Разобрался:
>>>>>> апач выдавал в строке "HTTP/1.1  401  Not ..."
>>>>>> не по одному пробелу, а по 2 справа и слева от 401: 
>>>>>> HTTP/1.1__401__Status
>>>>>> В результате 502.
>>>>>> 
>>>>> 
>>>>> Кстати, можно сделать как-нибудь так, чтобы
>>>>> такие кривые ответы
>>>>> "HTTP/1.x  CODE  ..." от бэкэнда норманьно
>>>>> обрабатывались proxy-модулем nginx'а?
>>>>> Или это противоречит RFC? Браузеры (IE, Mozilla,
>>>>> Opera) их нормально распознают.
>>>> 
>>>> 
>>>> Насколько я понимаю, это противоречит RFC:
>>>> 
>>>> http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1
>>>> 
>>>> Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
>>>> 
>>>> Хотя их несложно обработать.
>> 
>> 
>>> Сделайте пожалуйста такую обработку, все кривые сайты не профиксишь.
>>> Делать patch к nginx и постоянно его портировать под новые версии
>>> не очень удобно.
>> 
>> 
>> Прилагаемый патч должен решить эту проблему.
>> 
>> ------------------------------------------------------------------------
>> 
>> --- src/http/modules/ngx_http_proxy_module.c	Mon Feb  6 22:45:08 2006
>> +++ src/http/modules/ngx_http_proxy_module.c	Tue Mar  7 15:24:55 2006
>> @@ -961,6 +961,10 @@
>>           /* HTTP status code */
>>          case sw_status:
>> +            if (ch == ' ') {
>> +                break;
>> +            }
>> +
>>              if (ch < '0' || ch > '9') {
>>                  return NGX_HTTP_PROXY_PARSE_NO_HEADER;
>>              }
>
> Спасибо.
> Этот патч будет включён в последующие версии nginx'а?

Да.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list