Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
413:推到Nginx后面的Mercurial存储库时头部饱满_Mercurial_Nginx - Fatal编程技术网

413:推到Nginx后面的Mercurial存储库时头部饱满

413:推到Nginx后面的Mercurial存储库时头部饱满,mercurial,nginx,Mercurial,Nginx,我有一个Mercurial存储库,运行在Nginx后面的Scm manager代理上。各种较小的存储库运行良好,因此基本设置似乎还可以 此外,这个相同的框运行在Owncloud中。我已将服务器上的客户端最大体大小调整为1000M,以便可以传输大文件。这是可行的,我有各种各样的大文件在服务器和客户端之间同步 但是,当我第一次尝试推送一个大型Mercurial存储库时(1007次提交,而本系统上另一个最大的大约80次提交),我得到了以下结果: 中止:HTTP错误413:头部已满 我读到的关于413个

我有一个Mercurial存储库,运行在Nginx后面的Scm manager代理上。各种较小的存储库运行良好,因此基本设置似乎还可以

此外,这个相同的框运行在Owncloud中。我已将服务器上的客户端最大体大小调整为1000M,以便可以传输大文件。这是可行的,我有各种各样的大文件在服务器和客户端之间同步

但是,当我第一次尝试推送一个大型Mercurial存储库时(1007次提交,而本系统上另一个最大的大约80次提交),我得到了以下结果:

中止:HTTP错误413:头部已满

我读到的关于413个错误的所有信息似乎都不适用。首先,它建议将身体尺寸设置为1克,我已经说过了。接下来,这似乎适用于标题太大的情况,这是有意义的,因为它可能正在尝试检查远程存储库中的1000多个修订

我遇到的另一件事是大型客户端头缓冲区。我已经在服务器和http级别将其设置为“64128K”这样的巨大值(阅读一些关于它在服务器上不工作的信息),但这并没有改变任何事情

我还查看了scm管理器日志,但没有看到任何内容,因此这似乎在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;
  }
}

问题是应用程序服务器的头缓冲区,这是因为mercurial使用非常大的头。您必须增加标头缓冲区的大小,并且此应用程序服务器特定。如果您使用的是独立版本,则必须编辑server-config.xml并增加requestHeaderSize值

替换:

<Set name="requestHeaderSize">16384</Set>
16384
与:

32768

来源:

我在尝试推送时遇到了
HTTP错误:413(请求实体太大)
。通过添加
客户机\u max\u body\u size 2M解决
/etc/nginx/nginx.conf
。想知道是否
1000M
没有超过
客户的最大身体尺寸

<Set name="requestHeaderSize">32768</Set>