atlassian stash中 git push 返回411
问题
在Nginx作为GIT服务器的前端代理时,执行GIT PUSH可能会出现HTTP 411的错误。
这是因为Nginx不能处理Chunked的POST请求。
?
?
$ git pushCounting objects: 2332669, done.Delta compression using up to 16 threads.Compressing objects: 100% (360818/360818), done.error: RPC failed; result=22, HTTP code = 411fatal: The remote end hung up unexpectedlyWriting 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
?
配置如下:
?
;?
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... }