我有一个在 Nginx 后面代理的 Scm-manager 上运行的 Mercurial 存储库。各种较小的存储库运行良好,因此基本设置似乎还可以。
此外,同样的盒子运行 Owncloud。我已将服务器上的 client_max_body_size 调整为 1000M,以便可以传输大文件。这很有效,并且我在服务器和客户端之间同步了各种大文件。
但是,当我第一次尝试推送大型 Mercurial 存储库时(1007 次提交,而该系统上另一个最大的提交约为 80 次),我得到以下信息:
中止:HTTP 错误 413:全头
我读过的关于 413 错误的所有内容似乎都不适用。首先,它建议设置机身尺寸,我已经说过已经是1G了。接下来,这似乎适用于标头太大,这是有道理的,因为它可能正在尝试检查远程存储库中的 1000 多个修订。
我遇到的另一件事是 large_client_header_buffers。我已经在服务器和 http 级别上将它设置为非常大的值,例如“64 128k”(阅读一些关于它在服务器上不起作用的信息),但这并没有改变任何东西。
我还查看了 scm-manager 日志,但什么也没看到,所以这似乎停止了 Nginx。
想法?这是我的 Nginx 服务器配置的一部分:
server {
server_name thewordnerd.info;
listen 443 ssl;
ssl_certificate /etc/ssl/certs/thewordnerd.info.crt;
ssl_certificate_key /etc/ssl/private/thewordnerd.info.key;
root /srv/www/thewordnerd.info/public;
client_max_body_size 1000M;
location /scm {
proxy_pass http://127.0.0.1:8080/scm;
include /etc/nginx/proxy_params;
}
}