在Nginx作为GIT服务器的前端代理时,执行GIT PUSH可能会出现HTTP 411的错误。
这是因为Nginx不能处理Chunked的POST请求。
$ git push
Counting objects:
2332669
, done.
Delta compression using up to
16
threads.
Compressing objects:
100
% (
360818
/
360818
), done.
error: RPC failed; result=
22
, HTTP code =
411
fatal: The remote end hung up unexpectedly
Writing objects:
100
% (
2332669
/
2332669
),
483.30
MiB |
114.26
MiB/s, done.
Total
2332669
(delta
1949888
), reused
2330461
(delta
1949349
)
fatal: The remote end hung up unexpectedly
|
官方解决方法为:https://confluence.atlassian.com/pages/viewpage.action?pageId=282988530
对于Nginx,可以安装HttpChunkinModule模块(需要重新编译)
http://wiki.nginx.org/HttpChunkinModule#Installation
配置如下:
chunkin on;
#下面这个必须有 error_page 411 = @my_411_error; location @my_411_error { chunkin_resume; } location /bar { chunkin_keepalive on; # WARNING: too experimental! # your fastcgi_pass/proxy_pass/set/if and # any other config directives go here... }