gitlab git lfs + apache2,在推送文件时得到502“ AH01097:传递请求正文失败到127.0.0.1:8181”

时间:2018-08-02 09:28:52

标签: git apache gitlab git-lfs

我正在使用gitlab 11.1.4(已安装omnibus软件包)和apache2

一切正常,除了git lfs似乎超时。

在客户端,我可以看到

bar/foo/lb/bar.cast (99%)
Fatal error: Server error: https://gitlab.example.com/foo/whatever.git/gitlab-lfs/objects/777ed934b03ee88e4d6f25b16e79c1409030ece50d8ff751818f5f064149226c/203686721 from HTTP 502                        
Uploading LFS objects:   0% (0/2), 0 B | 346 KB/s, done
Fatal error: Server error: https://gitlab.example.com/foo/whatever.git/gitlab-lfs/objects/c119f668d98e8f67acefeade50d7d89f50cfe0654bbe6775ad971d229f99612b/233214051 from HTTP 502
error: failed to push some refs to 'ssh://git@gitlab.example.com:8090/foo/whatever'

在apache2日志中,我看到

[Thu Aug 02 10:48:09.195315 2018] [proxy:error] [pid 23394] (104)Connection reset by peer: [client 195.68.4.138:57292] AH01084: pass request body failed to 127.0.0.1:8181 (127.0.0.1)
[Thu Aug 02 10:48:09.195340 2018] [proxy_http:error] [pid 23394] [client 195.68.4.138:57292] AH01097: pass request body failed to 127.0.0.1:8181 (127.0.0.1) from 195.68.4.138 ()

由于文件大小为40MB,我怀疑是超时的问题。 (上传较小的文件后,我得到的是422,而不是502,但这是因为存在以下错误:https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/20923

我试图在apache2 conf中更改以下内容

超时2400   代理超时2400   ProxyBadHeader忽略

,然后在gitlab.rb中输入以下内容

gitlab_workhorse['proxy_headers_timeout'] = "20m0s"
unicorn['worker_timeout'] = 3600

gitlabctl restart

但仍然是502。

我想念什么吗?

1 个答案:

答案 0 :(得分:0)

我遇到了一个看起来相似的问题。 lib / gitlab / lfs_token.rb中有一个固定的超时时间,设置为1800秒(30分钟)。

我为此举了一张票https://gitlab.com/gitlab-org/gitlab-ce/issues/57353

Gitlab选择在lfs-authenticate响应中实现'expires_in“属性,因此lfs知道在原始证书过期之前请求临时身份验证。我了解此修复程序针对v11.9。有关详细信息。

同时,我通过在每次升级后将lib / gitlab / lfs_token.rb中的DEFAULT_EXPIRE_TIME设置为18000来解决此问题。