在Debian上部署GitLab的多实例需要一些步骤和配置。以下是一个基本的指南,帮助你在同一台服务器上运行多个GitLab实例。
首先,更新你的系统并安装必要的依赖:
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
添加GitLab官方仓库:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
安装GitLab CE(社区版):
sudo EXTERNAL_URL="http://gitlab.example.com" apt-get install gitlab-ce
将http://gitlab.example.com替换为你想要访问GitLab实例的URL。
为了运行多个GitLab实例,你需要为每个实例配置不同的端口和域名。
编辑/etc/gitlab/gitlab.rb文件:
external_url 'http://gitlab-instance1.example.com'
unicorn['port'] = 8080
nginx['listen_port'] = 8081
复制GitLab配置文件并编辑:
sudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab-instance2.rb
sudo nano /etc/gitlab/gitlab-instance2.rb
修改配置:
external_url 'http://gitlab-instance2.example.com'
unicorn['port'] = 8082
nginx['listen_port'] = 8083
对于每个实例,运行以下命令来重新配置和重启GitLab:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
编辑Nginx配置文件以添加反向代理规则。
sudo nano /etc/nginx/sites-available/gitlab-instance1
添加以下内容:
server {
listen 80;
server_name gitlab-instance1.example.com;
location / {
proxy_pass http://localhost:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
sudo nano /etc/nginx/sites-available/gitlab-instance2
添加以下内容:
server {
listen 80;
server_name gitlab-instance2.example.com;
location / {
proxy_pass http://localhost:8083;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启用这些站点并重启Nginx:
sudo ln -s /etc/nginx/sites-available/gitlab-instance1 /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/gitlab-instance2 /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
如果你需要SSL支持,可以使用Let’s Encrypt或其他证书颁发机构来获取证书,并配置Nginx使用这些证书。
通过以上步骤,你可以在Debian上部署多个GitLab实例。每个实例将运行在不同的端口上,并通过Nginx进行反向代理。确保你的DNS设置正确,以便可以通过域名访问这些实例。