我有一个运行在Scm-manager上的Mercurial存储库代理了Nginx。各种较小的存储库运行良好,因此基本设置似乎没问题。
此外,同一个盒子运行Owncloud。我已经将服务器上的client_max_body_size调整为1000M,因此可以传输大文件。这有效,我在服务器和客户端之间同步了各种大文件。
但是,当我第一次尝试推送一个大型Mercurial存储库时(1007次提交,而该系统中其他最大的存储库为80次),我得到以下结果:
abort:HTTP错误413:FULL head
我读过的关于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;
}
}
答案 0 :(得分:2)
问题是应用程序服务器的头缓冲区,这是因为mercurial使用非常大的头文件。您必须增加标头缓冲区和此应用程序服务器的大小。如果您使用的是独立版本,则必须编辑server-config.xml并增加requestHeaderSize值。
取代:
<Set name="requestHeaderSize">16384</Set>
使用:
<Set name="requestHeaderSize">32768</Set>
来源:https://groups.google.com/forum/#!topic/scmmanager/Afad4zXSx78
答案 1 :(得分:0)
我试图推动HTTP Error: 413 (Request Entity Too Large)
。已解决为client_max_body_size 2M;
添加/etc/nginx/nginx.conf
。想知道1000M
是否不超过client_max_body_size
...