通过Nginx反向代理进行git push停止工作致命:远程端意外挂起

问题描述

我的git(Bitbucket)有问题。如果我尝试将大于8MB的文件推送到我的git远程服务器,则会收到以下错误消息:

致命:远端意外挂起

致命:远端意外挂起

所有最新信息

git遥控器位于Nginx反向代理后面,该代理具有以下配置:

server {
listen 80;
server_name proxy.bitbucket.sample;

location / {
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://bitbucket.sample:7990;

    proxy_connect_timeout 1800;
    proxy_send_timeout 1800;
    proxy_read_timeout 1800;
    send_timeout 1800;
    proxy_request_buffering off;
    client_max_body_size 0;

    proxy_http_version 1.1;
    proxy_set_header Connection "";
}

}

Nginx的error.log为空,并且bitbucket上的日志显示以下消息:

2020-08-20 10:32:50,672 INFO  [http-scmrequest-handler:thread-1007] sven @U5MKSCx632x20155x0 10.79.1.30,10.79.1.54 "POST /scm/bitsystest/testimport2.git/git-receive-pack HTTP/1.1" c.a.s.i.s.g.p.h.GitSmartExitHandler BITSYSTEST/testimport2[360]: Write request from 10.79.1.30 Failed due to a socket timeout

这种行为是几天前开始的,没有对代理或位桶进行任何更改。

我在互联网上找到的唯一解决方案是提高 http.postBuffer ,该方法无效。

解决方法

我遇到了同样的问题。我认为这是一个错误。我通过从laste版本7.5.3降级到版本7.3.1解决了它

,

这是一个已知的错误-请参见https://jira.atlassian.com/browse/BSERV-12549

在bitbucket.properties中设置plugin.bitbucket-git.hosting.nio.http = false很有帮助(我想知道这个未记录的选项的作用)。