Gitea Git-LFS 推送大文件时出现 HTTP 413 错误

Tal*_*ali 2 apache git-lfs gitea

免责声明:我对 Linux/Ubuntu 整体和系统管理都很陌生,也只是在空闲时间涉足它,所以请耐心、彻底地回答你的问题。

我使用 git-lfs 在 Ubuntu 20.04 服务器上安装了 Gitea。我让 Apache 运行反向代理来将我的子域与 gitea 一起使用。我还使用 certbot 将其配置为 SSH。

每次我尝试推送大文件 (~>1Gb) 时,都会收到来自 HTTP 413 的 LFS: Client 错误。

到目前为止我尝试过的:

  • 禁用UFW
  • 增加 gitea 配置中所有相关文件和文件大小选项

这是我的 app.ini:

APP_NAME = Tali Git
RUN_USER = git
RUN_MODE = prod

[security]
INTERNAL_TOKEN     = XXXXX
INSTALL_LOCK       = true
SECRET_KEY         = XXXXXXX
PASSWORD_HASH_ALGO = pbkdf2

[database]
DB_TYPE  = sqlite3
HOST     = 127.0.0.1:3306
NAME     = gitea
USER     = gitea
PASSWD   = 
SCHEMA   = 
SSL_MODE = disable
CHARSET  = utf8
PATH     = /var/lib/gitea/data/gitea.db
LOG_SQL  = false

[repository]
ROOT = /var/lib/gitea/data/gitea-repositories

[repository.upload]
FILE_MAX_SIZE = 999999999999
MAX_FILES = 999999999999

[server]
SSH_DOMAIN       = git.example.com
DOMAIN           = git.example.com
HTTP_PORT        = 3000
ROOT_URL         = https://git.example.com/
DISABLE_SSH      = false
SSH_PORT         = 22
LFS_START_SERVER = true
LFS_CONTENT_PATH = /var/lib/gitea/data/lfs
LFS_JWT_SECRET   = XXXXXXXXXXXX
LFS_MAX_FILE_SIZE = 999999999999999999999999
OFFLINE_MODE     = false
LFS_HTTP_AUTH_EXPIRY = 999999m

[mailer]
ENABLED = false

[service]
REGISTER_EMAIL_CONFIRM            = false
ENABLE_NOTIFY_MAIL                = false
DISABLE_REGISTRATION              = true
ALLOW_ONLY_EXTERNAL_REGISTRATION  = false
ENABLE_CAPTCHA                    = false
REQUIRE_SIGNIN_VIEW               = false
DEFAULT_KEEP_EMAIL_PRIVATE        = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DEFAULT_ENABLE_TIMETRACKING       = true
NO_REPLY_ADDRESS                  = noreply.localhost

[picture]
DISABLE_GRAVATAR        = false
ENABLE_FEDERATED_AVATAR = true

[openid]
ENABLE_OPENID_SIGNIN = true
ENABLE_OPENID_SIGNUP = true

[session]
PROVIDER = file

[log]
MODE      = console
LEVEL     = info
ROOT_PATH = /var/lib/gitea/log
ROUTER    = console

[ui]
DEFAULT_THEME = arc-green
THEMES = gitea,arc-green
Run Code Online (Sandbox Code Playgroud)

Apache HTTP 代理:

<VirtualHost *:80>
    ServerName git.example.com
    ProxyPreserveHost On
    ProxyRequests off
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/
LimitRequestBody 0
RewriteEngine on
RewriteCond %{SERVER_NAME} =git.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

Apache SSH 代理:

<IfModule mod_ssl.c>
<VirtualHost *:443>
<Directory />
    SSLRenegBufferSize 2147483647
</Directory>
    ServerName git.example.com
    ProxyPreserveHost On
    ProxyRequests off
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/

SSLCertificateFile /etc/letsencrypt/live/git.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/git.example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
Run Code Online (Sandbox Code Playgroud)

Apache 访问或错误日志中没有任何突出的内容。

可以在此处找到具有日志级别跟踪的相关 Gitea 日志: https: //pastebin.com/XgbQaZn0

任何提示、想法或分享的经验将不胜感激。我在这里完全不知所措。

fre*_*dev 10

您是否尝试过添加

git config http.version HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

在你的 git 配置中?