ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Не отдается картинка - client sent too long header line



Hello!

On Wed, Aug 08, 2012 at 04:41:20PM +0300, Sergey Kobzar wrote:

> On 08/08/12 16:39, Sergey Kobzar wrote:
> >On 08/08/12 14:34, Sergey Kobzar wrote:
> >>Есть кастомная страница для 414 ошибки:
> >>
> >>error_page 414 /errors/414.html;
> >>
> >>Если запрашиваю страницу напрямую http://test.biz/errors/414.html, все
> >>ОК.
> >>
> >>Если вызываю 414 ошибку (Request-URI Too Large), то на некоторых доменах
> >>все ОК, а на некоторых html отображается нормально, но картинки нет
> >>видно. При этом логе:
> >>
> >>2012/08/08 12:21:11 [info] 16055#0: *14212044 client sent too long
> >>header line: "Referer: http://tst.biz/
> >>...
> >>" while reading client request headers, client: 1.1.1.1, server:
> >>localhost, request: "GET /errors/images/logo.png HTTP/1.1", host:
> >>"tst.biz"

Это сообщение из error log'а в его исходном виде?  Читай: 
заголовок Referer длинный, или на самом деле короткий, и nginx 
возводит напраслину?

> >>На других доменах, с тразницей в одну букву все ОК. И как выяснилось
> >>проблема не перманентна.
> >>
> >>Что это может быть?
> >
> >В документации нашел
> >http://nginx.org/ru/docs/http/ngx_http_core_module.html#large_client_header_buffers
> >
> >
> >"Поле заголовка запроса также не должно превышать размера одного буфера,
> >иначе клиенту возвращается ошибка 400 (Bad Request)."
> >
> >- я как раз 400 ошибку и получаю.
> >
> >выставил
> >
> >large_client_header_buffers 4 32k;
> >
> >не помогло.

Поскольку large_client_header_buffers ограничивают и размер 
request line, и размер строки заголовка - его изменение ни на 
что не влияет.  Если не влезла строка запроса - то и заголовок 
Referer, содержащий тот же самый uri, не влезет.

Compare:

GET / HTTP/1.1
Referer: http://example.org/

> >
> >Почему имидж не отдается?
> >
> >Спасибо.
> 
> Из access.log:
> 178.151.129.74 - - [08/Aug/2012:14:39:59 +0100] "GET
> /errors/images/logo.png HTTP/1.1" 400 372 "-" "Mozilla/5.0 (X11;
> Linux i686; rv:10.0.6) Gecko/20100101 Firefox/10.0.6" "-" - -

Это, на самом деле, не интересно.  Интересно - когда "всё 
нормально".  Не должно бы.  Хотя, конечно, браузеры могут 
проявлять интеллект, но я в этом сомневаюсь.  Скорее уж "просто 
было в кеше".

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.