今天刚在服务器上搭建了 Gogs,一款开源的、易搭建的自助 Git 服务,使用 Go语言编写,任何 Go 语言支持的平台都可以运行 Gogs,包括 Windows、Mac、Linux 以及 ARM。
当我准备将本地的一个项目 push 到 Gogs 的仓库中的时候,提示我以下内容:
$ git push origin master
Enumerating objects: 338, done.
Counting objects: 100% (338/338), done.
Delta compression using up to 6 threads.
Compressing objects: 100% (314/314), done.
Writing objects: 100% (336/336), 4.39 MiB | 15.84 MiB/s, done.
Total 336 (delta 25), reused 0 (delta 0)
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date
出现这个问题是因为我在服务器上用 Nginx 对 Gogs 反向代理,一次性提交代码量太多了,超出了 Nginx
的限制。
反向代理:
server {
listen 80;
server_name git.example.com;
location / {
# 3000 是 Gogs 运行的端口
proxy_pass http://localhost:3000;
}
}
解决方法有以下两种:
1、多次提交
将代码分多次提交,避免超出 Gogs 的限制。(此方法治标不治本)
2、修改 Nginx 配置
使用 client_max_body_size
设置允许最大请求的数据的大小:
server {
listen 80;
server_name git.example.com;
# 设置最大为 50 M
client_max_body_size 50m;
location / {
# 3000 是 Gogs 运行的端口
proxy_pass http://localhost:3000;
}
}
上传文件时出现 413 Request Entity Too Large 也可以通过设置
client_max_body_size
来解决。