故障现象:
我的gitlab服务器的环境是这样的,docker容器运行gitlab服务器,外边用nginx做代理,指向docker容器中的gitlab服务。在使用Github Desktop软件同步一些文件到gitlab上时,出现了HTTP 413错误:
Enumerating objects:17,done.
Counting Objects:100%(17/17),done.
Delta compression using up to 12 threads
Compressing objects:100%(15/15),done.
error:RPC failed; HTTP 413 curl 22 The requested URL returned error 413
fatal:the remote end hung up unexpectedly
Writing objects: 100%(15/15),1.32MiB | 988.00 KiB/s,done.
Total 15(delta 2),reused 0 (delta 0), pack-reused 0
fatal: the remote end hung up unexpectedly
Everything up-to-date
问题原因:
因上传路径包含nginx和gitlab两部分,首先修改Github Desktop的Repository Settings,直接用“IP地址+端口”的方式连接gitlab,发现此时这些文件可以上传,排除了gitlab的问题。
既然gitlab没问题,那就只能是nginx的问题,检查nginx配置之后,发现没有修改nginx的默认http上传文件大小(默认文件大小不能超过1MB),导致上传失败,出现了413问题。
解决方法:
修改nginx的配置文件nginx.conf,在文档的http节点下添加以下内容:
#nginx默认http上传文件大小不能超过1M,这里调整到50M
client_max_body_size 50M;
保存配置文件,重启nginx,重试上传文件,发现不再报错了,问题解决。