Nginxの背後にプロキシされたScm-managerで実行されているMercurialリポジトリがあります。さまざまな小さなリポジトリが正常に動作するため、基本的な設定は問題ないようです。
さらに、この同じボックスでOwncloudが実行されます。サーバー上のclient_max_body_sizeを1000Mに調整して、大きなファイルを転送できるようにしました。これは機能し、サーバーとクライアント間でさまざまな大きなファイルを同期しています。
ただし、大きなMercurialリポジトリを初めてプッシュしようとすると(1007コミットに対して、このシステムの他の最大のリポジトリでは約80)、次のようになります。
中止:HTTPエラー413:フルヘッド
413エラーについて私が読んだすべてが当てはまらないようです。まず、ボディサイズを設定することをお勧めします。これはすでに1Gであると述べました。次に、これはヘッダーが大きすぎることに当てはまるようです。これは、リモートリポジトリで1000以上のリビジョンをチェックしようとしていることを考えると理にかなっています。
私が遭遇したもう1つのことは、large_client_header_buffersです。これをサーバーレベルとhttpレベルの両方で「64128k」のようなめちゃくちゃ大きな値に設定しました(サーバーで機能しないことについて何か読んでください)が、何も変わりませんでした。
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;
}
}