如何通过http(nginx)和gitweb将gitolite与git集成在一起?

问题描述 投票:1回答:1

我目前正在运行Arch服务器,并使用nginx通过http(带有git-http-backend和gitweb)来提供git和gitweb。但是,我需要对git和gitweb都附加一层授权和访问控制。 Gitolite似乎是实现此目的的最佳工具。但是,如何才能使用gitolite来对通过http投放的gitweb和git进行访问控制?

我当前的nginx conf服务器部分看起来像这样:

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 for serving cgi
include       fastcgi_params;
fastcgi_param SCRIPT_FILENAME     /usr/lib/git-core/git-http-backend;

# export all repositories under GIT_PROJECT_ROOT
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_param GIT_PROJECT_ROOT    /srv/git;
fastcgi_param PATH_INFO           $1;
fastcgi_param REMOTE_USER $remote_user;
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 GITWEB_CONFIG     /etc/gitweb.conf;
include fastcgi_params;
}
}

或者也许有一些具有相同的访问和权限控制功能但具有更清晰的nginx实现和文档的gitolite替代品?

git nginx access gitolite gitweb
1个回答
0
投票

在NGiNX配置中,您需要调用gitolite而不是git-http-backend。

[我在“ git on HTTP with gitolite and nginx”中提到了该方法:那是for gitolite 2 though

[ScriptAlias /hgit/ @H@/gitolite/bin/gl-auth-command/仍然保留了定义特殊路径(/hgit)的想法,该路径随后将称为gitoliteFull example here,但适用于GitWeb和Apache。

© www.soinside.com 2019 - 2024. All rights reserved.