最近使用自建服务器用docker搞了个gitbucket来用,官方提供的是http的,为了增强安全性,使用nginx+自签名证书+端口转发搞了个https的版本。
但是在push大仓库的时候总是卡住,输出如下:
Enumerating objects: 6768, done.
Counting objects: 100% (6768/6768), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3252/3252), done.
Writing objects: 100% (6768/6768), 17.15 MiB | 102.70 MiB/s, done.
Total 6768 (delta 3519), reused 6737 (delta 3505), pack-reused 0
一开始以为是git的原因,换了个linux系统git还是一样的
切回http版本的又正常了,很明显是nginx的问题。经过一番搜索后找到问题所在了,在此记录一下。
问题在于nginx对报文body大小的限制,默认情况下是1m,仓库存在大于1m的文件时上传就卡住了。
官方文档:https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size
修改方法,location、server、http等区域加个
client_max_body_size 100m;
我是加在location部分:
location / {
client_max_body_size 100m;
proxy_pass http://localhost:8443;
}