
NGINX + spawn-fcgi の下にベアリポジトリがあります。
今、ローカル ディレクトリをリモート Git に追加しようとしています:
$ git init
$ git add *
$ git commit -m "Initial commit"
$ git remote add zeus http:/domain.com/new.git
$ git push zeus master
Counting objects: 5483, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5343/5343), done.
error: RPC failed; result=22, HTTP code = 500 | 2.82 MiB/s
fatal: The remote end hung up unexpectedly
Writing objects: 100% (5483/5483), 463.89 MiB | 19.33 MiB/s, done.
Total 5483 (delta 1591), reused 0 (delta 0)
fatal: The remote end hung up unexpectedly
Everything up-to-date
NGINX エラー ログには次の内容が表示されます:
32015/03/03 12:51:55 [crit] 21530#0: *1 writev() "/etc/nginx/client_body_temp/0000000001" は 8184 のうち 4671 のみを書き込みました。クライアント: 10.249.140.96、サーバー: domain.com、リクエスト: "POST /new.git/git-receive-pack HTTP/1.1"、ホスト: "domain.com"
NGINX 設定:
location / {
client_max_body_size 0;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_param GIT_PROJECT_ROOT /var/gitrepo;
fastcgi_param PATH_INFO $uri;
fastcgi_param SCRIPT_FILENAME /usr/libexec/git-core/git-http-backend;
fastcgi_param REMOTE_USER $remote_user;
include /etc/nginx/fastcgi_params;
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;
}
答え1
$ git config http.postBuffer 524288000
前述の通り、問題は解決しましたここ