在 Linux 上把 GitLab 通过域名访问(域名化),通常分几种场景。下面按最常见、最推荐的方式讲,适合自建 GitLab(Omnibus 安装)。
git.example.comsudo vim /etc/gitlab/gitlab.rb
找到或添加:
external_url 'https://git.example.com'
如果是 http:
external_url 'http://git.example.com'
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
此时 GitLab 已“域名化”。
/etc/gitlab/ssl/git.example.com.crt
/etc/gitlab/ssl/git.example.com.key
external_url 'https://git.example.com'
nginx['ssl_certificate'] = "/etc/gitlab/ssl/git.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/git.example.com.key"
sudo gitlab-ctl reconfigure
如果你服务器已有 Nginx:
external_url 'https://git.example.com'
gitlab_rails['gitlab_shell_ssh_port'] = 22
nginx['enable'] = false
web_server['external_users'] = ['www-data']
server {
listen 80;
server_name git.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name git.example.com;
ssl_certificate /path/fullchain.pem;
ssl_certificate_key /path/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
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;
}
}
gitlab_rails['gitlab_ssh_host'] = 'git.example.com'
gitlab_rails['gitlab_shell_ssh_port'] = 22
sudo gitlab-ctl reconfigure
仓库地址会变成:
git@git.example.com:group/project.git
external_url 已改external_url 'https://git.example.com:8888'
docker run -d \
-p 443:443 -p 80:80 \
-e GITLAB_OMNIBUS_CONFIG="external_url 'https://git.example.com';" \
gitlab/gitlab-ee
GitLab 域名化 = 改
external_url+ 域名解析 +(可选)HTTPS
如果你能告诉我:
我可以给你完全对应的配置方案。