首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何增加gitlab CE lfs文件大小限制以避免获得500个服务器错误?

如何增加gitlab CE lfs文件大小限制以避免获得500个服务器错误?
EN

Stack Overflow用户
提问于 2016-10-19 15:56:14
回答 1查看 3.3K关注 0票数 2

我正在使用优秀的sameersbn/gitlab为我的工作设置一个定制的gitlab服务器。

所以我有一个荒谬的场景,我使用git lfs存储10-20 范围内的文件,gitlab ce v8.12.5,但是我看到到处都是500个服务器错误,我的上传无法完成。

问题:有人知道我如何增加服务器端的限制吗?

注意:这不是413 nginx问题,我已经设置了client_max_body_size 500G,所以它应该转发给gitlab。

如果需要更多的信息(如日志文件等),我将乐意提供它,只需作出评论。

更新1:

在这个问题上似乎有一个相关的gitlab问题

Update.2

其他相关资源:

目前,我的假设是,链中的某个位置或码头容器中的代理服务器中存在超时。

git bash:错误: RPC失败;结果= 18,HTP代码=200 b=1 1KiB/s https://github.com/gitlabhq/gitlabhq/issues/694

因此,我刚刚注意到,对接映射设备/dev/dm-7变成了100%完整的,几乎就在gitlab错误使用500的同时。

现在我开始相信,这不是gitlab的问题,而是码头的问题,gitlab只是空间不足。

谢谢你抽出时间,干杯。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-28 00:26:33

问题1

第一个主要问题是~/log/gitlab-workhorse.log中的以下错误

error: handleStoreLfsObject: copy body to tempfile: unexpected EOF

此错误与gitlab本身无关,而是在其最新版本中决定将默认容器大小从100 G/容器缩减到10G /容器,这意味着每当我试图上载大于10 in的文件时,gitlab将尝试制作一个与上传文件大小相同的临时文件(在我的例子中是30 in ),然后由于码头容器中缺少空间而破坏上述错误消息。

关于如何增加容器的大小,我遵循了这个优秀的指南,但基本上可以归结为:

代码语言:javascript
复制
    sudo `which docker-compose` down

停止正在运行的容器。

代码语言:javascript
复制
    sudo vim /etc/systemd/system/docker.service

并附加

代码语言:javascript
复制
    --sotrage-opt dm.basesize=100G

作为新基图像的默认大小。现在看来码头有问题了,你必须

代码语言:javascript
复制
   sudo `which docker` rmi gitlab

假设您的图像名为gitlab,并且

代码语言:javascript
复制
   sudo `which docker-compose` up

重新拉出图像,并以适当的大小创建它。

如果这仍然不起作用,那么试试sudo systemctl restart docker.service吧,因为当对接者似乎没有按照你的要求去做的时候,这似乎是有帮助的。

代码语言:javascript
复制
    sudo docker exec -it gitlab df -h

应该产生类似于:

代码语言:javascript
复制
Filesystem                                                                                        Size  Used Avail Use% Mounted on

/dev/mapper/docker-253:1-927611-353ffe52e1182750efb624c81a3a040d5c054286c6c5b5f709bd587afc92b38f  100G  938M  100G   1% /

我不能百分之百肯定所有这些设置都是必要的,但在解决问题2时,我不得不在docker-compose.yml中设置这些设置

代码语言:javascript
复制
    - GITLAB_WORKHORSE_TIMEOUT=60m0s
    - UNICORN_TIMEOUT=3600
    - GITLAB_TIMEOUT=3600

问题2

除了将容器的大小从10 to调整到100 to之外,我还必须向正在运行的实例添加以下内容:

其原因是文件大小太大(30GB+),网络速度太慢(10 so /s),以至于上传所用的时间比默认的nginx长,并且使用504 Gateway Timeout超时。

代码语言:javascript
复制
    sudo docker exec -it /bin/bash

gitlab容器的vim.tiny /etc/nginx/nginx.conf

代码语言:javascript
复制
    http {
    ...
      client_max_body_size 500G;
      proxy_connect_timeout       3600;
      proxy_send_timeout          3600;
      proxy_read_timeout          3600;
      send_timeout                3600;
    ...
    }

然后我重新开始了。遗憾的是,service restart nginx没有工作,我不得不:

代码语言:javascript
复制
    service stop nginx
    service start nginx

注意:我在这个服务器上运行了一个反向代理,它捕获所有http请求,所以我不确定,但是我认为我添加到容器nginx配置中的所有设置都必须在代理端复制

如果我已经离开了,或者你想要澄清一下程序的一个具体部分,请留下评论,然后问。这是一种巨大的痛苦,我希望能帮助别人解决这个问题。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40136346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档