ПРОЕКТЫ 


  АРХИВ 


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



Максим

Спасибо. См. ниже.

On 08/08/12 17:51, Maxim Dounin wrote:

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
возводит напраслину?

Я вырезал Referer чтобы не писать сюда километровую строку запроса. Исходная задача - вывести кастомную страницу ошибки на 414. Я специально задал строку запроса такой длины.


На других доменах, с тразницей в одну букву все ОК. И как выяснилось
проблема не перманентна.

Что это может быть?

В документации нашел
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" "-" - -

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

Да - застряло в кэше.


Но вопрос остается, возможно ли в custom error page на 414 ошибку вывести картинку?



Maxim Dounin


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


 




Copyright © Lexa Software, 1996-2009.