Gitolite 502 при попытке клонировать/извлечь любой репозиторий по http

Gitolite 502 при попытке клонировать/извлечь любой репозиторий по http

Я пытаюсь настроить gitolite для работы на nginx с gitweb. И несмотря на то, что gitweb работает безупречно и распознает все функции контроля доступа, предоставляемые gitolite, я, похоже, не могу получить доступ к самим репозиториям по http. Например, когда я пытаюсь получить репозиторий, я получаю:

user@hostname:$ git fetch origin master Username for 'http://git.<hostname>': <Username> Password for 'http://<Username>@git.<hostname>': remote: An error occurred while reading CGI reply (no response received) fatal: unable to access 'http://git.<hostname>/git/<reponame>.git/': The requested URL returned error: 502

Моя текущая конфигурация nginx выглядит так:

server {
    listen 127.0.0.1:80;

    server_name git.<hostname>;
    root /usr/share/gitweb;

    # Basic Authentication
    auth_basic "Private Git Server";
    auth_basic_user_file /srv/etc/.htpasswd;

    location ~ /git(/.*) {
    root /srv/git/;

    client_max_body_size 0;

    # fcgiwrap is set up to listen on this host:port
    include       fastcgi_params;
    fastcgi_param SCRIPT_FILENAME    /srv/git/gitolite-source/src/gitolite-shell;

    # export all repositories under GIT_PROJECT_ROOT
    fastcgi_param REMOTE_USER $remote_user;
    fastcgi_param GIT_HTTP_EXPORT_ALL "";
    fastcgi_param GIT_PROJECT_ROOT    /srv/http/repositories;
    fastcgi_param GITOLITE_HTTP_HOME /srv/git;
    fastcgi_param PATH_INFO           $1;
    fastcgi_pass    unix:/var/run/fcgiwrap.sock;
    }

    try_files $uri @gitweb;
    location @gitweb {
    fastcgi_pass unix:/var/run/fcgiwrap.sock;
    fastcgi_param SCRIPT_FILENAME   /usr/share/gitweb/gitweb.cgi;
    fastcgi_param PATH_INFO         $uri;
    fastcgi_param REMOTE_USER $remote_user;
    fastcgi_param GITWEB_CONFIG     /srv/git/gitweb/gitweb.conf;
    include fastcgi_params;
    }
}

Gitolite установлен в /srv/git, а все репозитории (вместе с файлами конфигурации gitolite и т. д.) хранятся в /srv/http (запуск gitolite под пользователем http). Я подозреваю, что это проблема неправильной конфигурации. Что мне нужно сделать, чтобы можно было работать с git через http с моей текущей настройкой? Кстати, я использую Arch

решение1

Что ж, решение было всего в одном шаге.GITOLITE_HTTP_HOMEпараметр просто должен указывать на/srv/http;вместо/srv/git;.И все. И gitweb, и git работают отлично и соблюдают разрешения, заданные в gitolite.conf.

Связанный контент