atlassian stash中 git push 返回411

问题

在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...
  }

猜你喜欢

转载自thihy.iteye.com/blog/1732128