温馨提示×

linux gitlab怎么域名化

小樊
39
2026-09-01 13:50:32
栏目: 云计算

在 Linux 上把 GitLab 通过域名访问(域名化),通常分几种场景。下面按最常见、最推荐的方式讲,适合自建 GitLab(Omnibus 安装)。


一、前提条件

  1. 有一台 Linux 服务器(CentOS / Ubuntu 等)
  2. 已安装 GitLab(通常是 Omnibus 包)
  3. 有一个域名,例如:git.example.com
  4. 域名已解析到服务器公网 IP(A 记录)

二、修改 GitLab 配置文件(核心)

1. 编辑配置文件

sudo vim /etc/gitlab/gitlab.rb

2. 设置外部访问域名

找到或添加:

external_url 'https://git.example.com'

如果是 http:

external_url 'http://git.example.com'

3. 重新配置 GitLab

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

此时 GitLab 已“域名化”。


三、使用 HTTPS(强烈推荐)

方式一:GitLab 自带 Nginx + 证书(最简单)

1. 准备证书

/etc/gitlab/ssl/git.example.com.crt
/etc/gitlab/ssl/git.example.com.key

2. gitlab.rb 中确认

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"

3. 重新配置

sudo gitlab-ctl reconfigure

方式二:用自有 Nginx / Caddy 反代(常见)

如果你服务器已有 Nginx:

gitlab.rb

external_url 'https://git.example.com'
gitlab_rails['gitlab_shell_ssh_port'] = 22
nginx['enable'] = false
web_server['external_users'] = ['www-data']

Nginx 配置示例

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;
    }
}

四、SSH 域名访问(可选)

修改 SSH 地址显示

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

五、常见问题

1. 访问还是 IP?

  • 清除浏览器缓存
  • 确认 external_url 已改
  • 确认 DNS 已生效

2. 端口不是 80/443?

external_url 'https://git.example.com:8888'

3. Docker 安装 GitLab?

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

如果你能告诉我:

  • GitLab 安装方式(Omnibus / Docker / 源码)
  • 是否已有 Nginx
  • 是否要 HTTPS

我可以给你完全对应的配置方案

0