Ubuntu18.04搭建基于http(s)协议的Git仓库
上⼀篇 已经介绍了如何搭建基于ssh的Git服务器,这⼀篇在上⼀篇的基础上,搭建可以通过http(s)访问的Git服务器。
服务器:Ubuntu18.04
1、安装Git
apt-get install git
2、安装nginx
apt-get install nginx
3、安装 fcgiwrap
nginx鉴权网关
apt-get install fcgiwrap
4、新建裸仓库
git init --bare /opt/config/
修改仓库权限,让所有⽤户均可修改
chmod -R a+w /opt/config/
5、Nginx配置访问路径
我的⽬的是在 nginx 的默认⽹站下添加⼀个虚拟⽬录 /git/ , 通过访问 /git/xxx 的形式来访问服务器上的 xxx.git 代码库, 这就需要修改⼀下 nginx 默认⽹站的配置⽂件 /etc/nginx/sites-available/default , 添加下⾯的信息:
# 配置以 /git 开始的虚拟⽬录
location ~ /git(/.*){
# 使⽤ Basic 认证
auth_basic "Restricted";
# 认证的⽤户⽂件
auth_basic_user_file /etc/nginx/passwd;
# FastCGI 参数
fastcgi_pass  unix:/var/run/fcgiwrap.socket;
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
fastcgi_param GIT_HTTP_EXPORT_ALL "";
# git 库在服务器上的跟⽬录
fastcgi_param GIT_PROJECT_ROOT    /opt;
fastcgi_param PATH_INFO          $1;
# 将认证⽤户信息传递给 fastcgi 程序
fastcgi_param REMOTE_USER $remote_user;
# 包涵默认的 fastcgi 参数;
include      fastcgi_params;
# 将允许客户端 post 的最⼤值调整为 100 兆
max_client_body_size 100M;
}
重新加载nginx配置
nginx -s reload
6、Nginx鉴权
让Nginx来管理访问时的⽤户鉴权,⽤以下命令增加⼀个git⽤户并按提⽰设置密码,可以创建多个⽤户。
htpasswd [-c] /etc/nginx/passwd git
如果提⽰没有htpasswd命令,需要先安装apache2-utils包:apt-get install apache2-utils。
/etc/nginx/passwd为⽤户名和密码⽂件,-c 参数表⽰创建⼀个新的密码⽂件,原来没有这个⽂件时必须要带,已经存在这个⽂件了就不要带-c参数了。
7、结束
若仓库接收git push时报错403,可在仓库中设置git ivepack true

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。