2013-02-14 16 views
1

我有一個Mercurial存儲庫,運行在Nginx後面的Scm-manager上。各種較小的存儲庫運行良好,所以基本設置似乎沒問題。413:在推送到Nginx背後的Mercurial存儲庫時滿腦袋

此外,這個相同的盒子運行Owncloud。我已經將服務器上的client_max_body_size調整爲1000M,因此可以傳輸大文件。這可以工作,並且我在服務器和客戶端之間有各種大文件同步。

然而,當我嘗試推動的第一次大的Mercurial庫(1007個提交與約80家爲其他最大的在這個系統上)我得到以下幾點:

中止:HTTP錯誤413:FULL頭

我讀過的關於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

我在我試圖推動了HTTP Error: 413 (Request Entity Too Large)。通過將client_max_body_size 2M;添加到/etc/nginx/nginx.conf來解決。想知道如果1000M不超過client_max_body_size ...

2

的問題是應用程序服務器的首部緩衝區,這是因爲水銀的使用非常大的報頭。您必須增加標題緩衝區和特定應用程序服務器的大小。如果您使用獨立版本,則必須編輯server-config.xml並增加requestHeaderSize值。

取代:

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

有:

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

來源:https://groups.google.com/forum/#!topic/scmmanager/Afad4zXSx78

相關問題