之前一直使用 coding 或 gitee 之类的代码托管平台,最近为了备份项目,自己搭建了一个 gogs

部署采用 nginx 代理,即使用 git.yourdomain.com 地址来访问。

部署好之后推送第一个项目,发现报错:

....
Enumerating objects: 2786, done.
Counting objects: 100% (2786/2786), done.
Delta compression using up to 12 threads
Compressing objects: 100% (878/878), done.
Writing objects: 100% (2786/2786), 2.54 MiB | 3.93 MiB/s, done.
Total 2786 (delta 1535), reused 2748 (delta 1498)
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413
fatal: the remote end hung up unexpectedly
fatal: the remote end hung up unexpectedly
Everything up-to-date

看到 HTTP 413 立即想到可能是项目太大,导致 nginx 拒绝接受。

搜了一下,Nginx 的 client_max_body_size 默认值仅为 1M,看了一下项目大小,是 4.2M,于是将该值配置为 10M

server {
    // 其他配置...
    client_max_body_size 10m;
    // 其他配置...
}

然后检查并重载 Nginx 配置,问题解决。

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ service nginx reload

参考文档