Nginx 如何增加gitlab CE lfs文件大小限制以避免出现500个服务器错误?
我正在使用优秀的工具为我的工作设置一个定制的gitlab服务器 所以我有一个荒谬的场景,我使用gitlab ce v8.12.5使用Nginx 如何增加gitlab CE lfs文件大小限制以避免出现500个服务器错误?,nginx,docker,gitlab,large-files,git-lfs,Nginx,Docker,Gitlab,Large Files,Git Lfs,我正在使用优秀的工具为我的工作设置一个定制的gitlab服务器 所以我有一个荒谬的场景,我使用gitlab ce v8.12.5使用git lfs来存储10-20GB范围内的文件,但是我看到到处都有500个服务器错误,我的上传无法完成 问题:有人知道我如何增加服务器端限制吗? 注意:这不是413 nginx的问题,我已经设置了客户机的最大机身尺寸为500G,所以应该可以转发到gitlab 如果需要更多信息(如日志文件等),我很乐意提供,只需发表评论即可 最新情况1: 在同一个问题上似乎存在着一种
git lfs
来存储10-20GB范围内的文件,但是我看到到处都有500个服务器错误,我的上传无法完成
问题:有人知道我如何增加服务器端限制吗?
注意:这不是413 nginx的问题,我已经设置了客户机的最大机身尺寸为500G
,所以应该可以转发到gitlab
如果需要更多信息(如日志文件等),我很乐意提供,只需发表评论即可
最新情况1:
在同一个问题上似乎存在着一种关联
更新.2
其他相关资源:
目前,我的假设是docker容器中的链或代理服务器中的某个位置存在超时
sudo vim /etc/systemd/system/docker.service
我注意到docker映射的设备/dev/dm-7
几乎在gitlab出错的同时变为100%满
现在我开始相信这不是gitlab的问题,而是docker的问题,gitlab只是空间不足
谢谢您的时间,干杯。问题1
第一个主要问题是~/log/gitlab workhorse.log
错误:handleStoreLfsObject:将正文复制到临时文件:意外的EOF
这个错误与gitlab本身无关,但docker在其最新版本中决定将默认容器大小从100G/container缩小到10G/container,这意味着每当我尝试上载大于10GB的文件时,gitlab会尝试创建一个上传文件大小的临时文件(在我的例子中是30GB),然后由于docker容器中空间不足而发出上述错误消息
sudo vim /etc/systemd/system/docker.service
我遵循这一极好的方法来增加容器的大小,但基本上可以归结为:
sudo `which docker-compose` down
停止正在运行的容器
sudo vim /etc/systemd/system/docker.service
和附加
--sotrage-opt dm.basesize=100G
作为新基础图像的默认大小。现在看来docker有个问题,你必须
sudo `which docker` rmi gitlab
假设您的图像被称为gitlab
,并且
sudo `which docker-compose` up
重新拉取图像并使其具有正确的大小
如果这仍然不起作用,请尝试重新启动docker.service,因为当docker似乎没有执行您要求它执行的操作时,这似乎会有所帮助
应该产生类似于:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/docker-253:1-927611-353ffe52e1182750efb624c81a3a040d5c054286c6c5b5f709bd587afc92b38f 100G 938M 100G 1% /
我不是100%确定所有这些设置都是必要的,但在解决下面的问题2时,我最终不得不在
问题2
除了将容器大小从10GB调整到100GB之外,我还必须将以下内容添加到正在运行的实例中:
原因是文件大小太大(30GB+),网络速度太慢(10MB/s),以至于上传时间比默认的nginx长,并且超时为504网关超时
sudo docker exec -it /bin/bash
gitlab容器的vim.tiny/etc/nginx/nginx.conf
:
http {
...
client_max_body_size 500G;
proxy_connect_timeout 3600;
proxy_send_timeout 3600;
proxy_read_timeout 3600;
send_timeout 3600;
...
}
然后我重新启动了nginx。遗憾的是,服务重启nginx
无法工作,我不得不:
service stop nginx
service start nginx
注意:我在这台服务器上运行了一个反向代理,它可以捕获所有http请求,所以我不确定,但我相信我添加到容器的nginx配置中的所有设置都必须在代理端复制
如果我遗漏了步骤,或者您希望了解如何准确执行程序的某一部分,请留下评论并询问。这是一个巨大的痛苦,我希望能帮助别人解决这个问题