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

Sergey Kobzar sergey.kobzar at itcraft.org
Thu Aug 9 15:20:44 UTC 2012


Максим

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

On 08/08/12 18:50, Maxim Dounin wrote:
> Hello!
>
> On Wed, Aug 08, 2012 at 06:36:20PM +0300, Sergey Kobzar wrote:
>
>> On 08/08/12 18:28, Maxim Dounin wrote:
>>> Hello!
>>>
>>> On Wed, Aug 08, 2012 at 06:11:24PM +0300, Sergey Kobzar wrote:
>>>
>>> [...]
>>>
>>>> Но вопрос остается, возможно ли в custom error page на 414 ошибку
>>>> вывести картинку?
>>>
>>> Как минимум три очевидных решения:
>>>
>>> - data://
>>
>> Не понял.
>
> http://en.wikipedia.org/wiki/Data_URI_scheme
>
>>> - картинка на отдельном ip/порту (виртуальный хост не подойдёт,
>>>    т.к. там размеры буферов те же самые)
>>
>> proxy на localhost?
>
> Зачем proxy?  В<img src="...">  написать.
>
>>> - отдельный location для картинки, по error_page 494 возвращающий
>>>    её же.
>>
>> Я не виде 494 кода в ответе. Что это за код?
>
> Это специальный код, который nginx возвращает в случае "client
> sent too long header line" или "client sent too large reques".
> Работает так же, как специальные коды 497 и т.п. для ssl[1] -
> наружу не отдаётся, но в error_page можно использовать.  Появился
> в 0.9.4, см. CHANGES:
>
>      *) Feature: 494 code for "Request Header Too Large" error.
>
> [1] http://nginx.org/ru/docs/http/ngx_http_ssl_module.html#errors

Решил с пом. data URI.

Error page:
error_page 414 /errors/414.html;

При длинном URI возвращается кастомная страница с ошибкой, но с кодом 
ответа 200. Почему не приходит 414? Как вариант, сделать локейшн

location = /errors/414.html {
	return 414;
}

Но почему изначально не приходит нужный код?

>
> Maxim Dounin
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



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