[mod_wsgi] header filter

Igor Sysoev is at rambler-co.ru
Fri Oct 19 19:29:28 MSD 2007


On Fri, Oct 19, 2007 at 05:07:37PM +0200, Manlio Perillo wrote:

> I'm trying to define a custom header filter in mod_wsgi, but my filter 
> is not called.
> 
> Is this supported?

Yes, of course. It's seems that your module set in filter chain too late -
after ngx_htpt_header_filter_module.

If you use "config" file configuration, you need to write there:
HTTP_AUX_FILTER_MODULES="$HTTP_AUX_FILTER_MODULES ngx_http_YOUR_filter_module"

> The filter is very simple, and I need it since Ningx does not set the 
> r->header_only flag:
> 
> 
> static
> ngx_int_t ngx_http_wsgi_header_filter(ngx_http_request_t *r) {
>   /*
>    * A custom filter to enable cache validation in mod_wsgi.
>    *
>    * NOTE: this header filter SHOULD be executed after the
>    * not_modified header filter.
>    */
> 
>   if (r->headers_out.status != NGX_HTTP_NOT_MODIFIED) {
>     return ngx_http_next_header_filter(r);
>   }
> 
>   if (r->headers_out.status < NGX_HTTP_MOVED_PERMANENTLY) {
>     /* 2XX */
>     r->header_only = 1;
> 
>     /* XXX check me */
>     r->headers_out.content_type.len = 0;
>     r->headers_out.content_type.data = NULL;
>     r->headers_out.last_modified_time = -1;
>     r->headers_out.last_modified = NULL;
>     r->headers_out.content_length = NULL;
>     r->headers_out.content_length_n = -1;
>   } else if (r->headers_out.status < NGX_HTTP_BAD_REQUEST) {
>     r->header_only = 1;
>   }
> 
>   return ngx_http_next_header_filter(r);
> }
> 
> 
> 
> Thanks and regards  Manlio Perillo
> 

-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list