413:推到Nginx后面的Mercurial存储库时头部饱满
我有一个Mercurial存储库,运行在Nginx后面的Scm manager代理上。各种较小的存储库运行良好,因此基本设置似乎还可以 此外,这个相同的框运行在Owncloud中。我已将服务器上的客户端最大体大小调整为1000M,以便可以传输大文件。这是可行的,我有各种各样的大文件在服务器和客户端之间同步 但是,当我第一次尝试推送一个大型Mercurial存储库时(1007次提交,而本系统上另一个最大的大约80次提交),我得到了以下结果: 中止:HTTP错误413:头部已满 我读到的关于413个错误的所有信息似乎都不适用。首先,它建议将身体尺寸设置为1克,我已经说过了。接下来,这似乎适用于标题太大的情况,这是有意义的,因为它可能正在尝试检查远程存储库中的1000多个修订 我遇到的另一件事是大型客户端头缓冲区。我已经在服务器和http级别将其设置为“64128K”这样的巨大值(阅读一些关于它在服务器上不工作的信息),但这并没有改变任何事情 我还查看了scm管理器日志,但没有看到任何内容,因此这似乎在Nginx中停止了 想法?以下是我的Nginx服务器配置的一部分:413:推到Nginx后面的Mercurial存储库时头部饱满,mercurial,nginx,Mercurial,Nginx,我有一个Mercurial存储库,运行在Nginx后面的Scm manager代理上。各种较小的存储库运行良好,因此基本设置似乎还可以 此外,这个相同的框运行在Owncloud中。我已将服务器上的客户端最大体大小调整为1000M,以便可以传输大文件。这是可行的,我有各种各样的大文件在服务器和客户端之间同步 但是,当我第一次尝试推送一个大型Mercurial存储库时(1007次提交,而本系统上另一个最大的大约80次提交),我得到了以下结果: 中止:HTTP错误413:头部已满 我读到的关于413个
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>