Thanks, Maxim. I know what you means. But there may be some problems with the order of filter modules. If a filter module's header filter function sets the filter_need_in_memory flag, it should be run before the gunzip module. And this filter module indeed need parse the response after the gunzip module in the body filter function. This may be a problem? <br>
<br><div class="gmail_quote">2013/1/24 Maxim Dounin <span dir="ltr"><<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello!<br>
<div><div class="h5"><br>
On Wed, Jan 23, 2013 at 11:46:56AM +0800, Ò¦Î°±ó wrote:<br>
<br>
> Hi,<br>
><br>
> I have used the gunzip filter module to inflate the compressed response.<br>
> This module is very efficient and help us a lot. But it It just work when<br>
> the request don't send the Accept-Encoding: Gzip header. If the client can<br>
> accept compressed response, it will not work at all. I have changed this<br>
> module and added a gunzip_force directive. Then it will always inflate the<br>
> compressed response when the directive is turned on.<br>
><br>
> This patch could be helpful for other filter modules, like ssi module and<br>
> substitute module etc. It can save the bandwidth with backend servers. In<br>
> our company, the intranet bandwidth really kills us.<br>
><br>
> This patch is from the separated gunzip module. It should be similar with<br>
> the Nginx official source code. Hope this be helpful.<br>
<br>
</div></div>You probably seen this comment at the top of gunzip handler:<br>
<br>
    /* TODO always gunzip - due to configuration or module request */<br>
<br>
While configuration directive certainly will work, but it looks<br>
like a hack (and that's why it wasn't implemented).  I tend to<br>
think it would be much better to make things just happen<br>
automatically on module request, much like it's currently done<br>
with reading response body into memory once<br>
r->filter_need_in_memory is set by any filter.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Maxim Dounin<br>
<a href="http://nginx.com/support.html" target="_blank">http://nginx.com/support.html</a><br>
<br>
_______________________________________________<br>
nginx-devel mailing list<br>
<a href="mailto:nginx-devel@nginx.org">nginx-devel@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-devel" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-devel</a></font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>Weibin Yao<br>
Developer @ Server Platform Team of Taobao