Инициализация 'Content-length' в ngx_http_*_body_filter

Igor Sysoev is at rambler-co.ru
Wed Jul 11 17:16:56 MSD 2007


On Wed, Jul 11, 2007 at 04:57:31PM +0400, Denis Erygin wrote:

> Как правильно инициализировать header "Content-length" в ngx_http_*_body_filter?

Никак. Заголовки нужно менять в ngx_http_*_header_filer.

> Если делать так:
> 
> r->headers_out.content_length_n = 1024;
> 
> rc = ngx_http_discard_body (r);
> if ( rc != NGX_OK && rc != NGX_AGAIN )
>    return rc;
> 
> rc = ngx_http_send_header (r);
> if (rc == NGX_ERROR || rc > NGX_OK || r->header_only)
>    return rc;
> 
> то Content-length не появляется в заголовке, кроме того
> сам заголовок приезжает в теле ответа.

ngx_http_discard_body() и ngx_http_send_header() противопоказываны
для использования в фильтрах.


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





More information about the nginx-ru mailing list