10

看起来nginx 0.8.35 可能支持分块传输编码

nginx 0.8.35 的更改 2010 年 4 月 1 日

*) Change: now the charset filter runs before the SSI filter.

*) Feature: the "chunked_transfer_encoding" directive.

这很棒,因为我正在尝试通过 nginx 反向代理将 git 更改推送到 git-http-backend 进程。出于客户端效率的原因,Git HTTP 利用了分块传输编码。

但是,我无法让它工作。我在 Debian Lenny 上使用 nginx 0.8.44 并进行以下配置调用:

./configure \
--sbin-path=/usr/sbin \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--user=www-data \
--group=www-data \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-http_realip_module

以及以下 conf 文件:

server {
    server_name example.com;
    location / {
        proxy_pass  http://192.168.0.10;
        include     /etc/nginx/proxy.conf;
        chunked_transfer_encoding on;
    }
}

我的proxy.conf样子是这样的:

proxy_redirect          off;
proxy_set_header        Host $host;
proxy_set_header        X-Real-IP $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size    100M;
client_body_buffer_size 128k;
proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;
proxy_buffer_size       4k;
proxy_buffers           4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
4

2 回答 2

10

我在 ServerFault 上问了同样的问题并得到了这个答案:

https://serverfault.com/questions/159313/enabling-nginx-chunked-transfer-encoding/187573#187573

于 2011-01-03T08:25:47.140 回答
3

我相信 chunked_transfer_encoding 默认是打开的。配置标志在添加到 server{} 范围时正常工作,但在放置在 location{} 范围内时无效。

于 2011-02-06T02:32:58.907 回答