温馨提示×

ubuntu上gitlab如何设置域名

小樊
37
2025-12-20 18:38:25
栏目: 云计算

Ubuntu 上 GitLab 设置域名

一 前置准备

  • 准备一个可解析到服务器公网 IP 的域名(如:gitlab.example.com),在域名解析商处添加 A 记录 指向该 IP。
  • 开放服务器安全组/防火墙端口:80/443(HTTP/HTTPS),以及用于仓库克隆的 22(SSH)。如使用云服务器,请在控制台放行对应端口。

二 Omnibus 包方式配置域名

  • 编辑配置文件
    打开 /etc/gitlab/gitlab.rb,设置外部访问地址(将域名替换为你的实际域名):
    external_url “https://gitlab.example.com”
    说明:所有 GitLab 配置均在此文件中修改,避免直接改动其他自动生成的配置文件。
  • 配置 HTTPS(推荐 Let’s Encrypt 自动申请)
    /etc/gitlab/gitlab.rb 中启用内置证书签发:
    letsencrypt[‘enable’] = true
    保存后执行:sudo gitlab-ctl reconfigure
    等待完成后,GitLab 会自动申请并配置 Let’s Encrypt 证书,启用 HTTPS
  • 手动证书(可选)
    若使用已有证书,放置证书文件(如:/etc/gitlab/ssl/gitlab.crt/etc/gitlab/ssl/gitlab.key),并在 gitlab.rb 中配置:
    external_url “https://gitlab.example.com”
    nginx[‘redirect_http_to_https’] = true
    nginx[‘ssl_certificate’] = “/etc/gitlab/ssl/gitlab.crt”
    nginx[‘ssl_certificate_key’] = “/etc/gitlab/ssl/gitlab.key”
    nginx[‘ssl_dhparam’] = “/etc/gitlab/ssl/dhparams.pem”
    保存后执行:sudo gitlab-ctl reconfigure。

三 Docker 部署方式配置域名

  • 运行容器时通过 –hostname 指定域名,并映射 80/443/22 端口:
    docker run --detach \ –hostname gitlab.example.com \ –publish 443:443 --publish 80:80 --publish 22:22 \ –name gitlab \ –restart always \ –volume /srv/gitlab/config:/etc/gitlab \ –volume /srv/gitlab/logs:/var/log/gitlab \ –volume /srv/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest
    容器内的 GitLab 将使用上述 hostname 作为访问域名。
  • 在容器内启用 HTTPS(两种常见做法)
    • 内置自动证书(推荐):在挂载的 /srv/gitlab/config/gitlab.rb 中设置
      external_url “https://gitlab.example.com”
      letsencrypt[‘enable’] = true
      然后执行:docker exec -it gitlab gitlab-ctl reconfigure
    • 手动证书:将证书挂载到容器内(如 /etc/gitlab/ssl/),并在 gitlab.rb 中配置证书路径与重定向,最后执行 reconfigure 使配置生效。

四 验证与常见问题

  • 访问测试
    打开浏览器访问 https://gitlab.example.com,确认能正常打开页面且证书有效(锁标识)。如需 SSH 克隆,使用形如 git@gitlab.example.com:group/project.git 的地址。
  • 配置生效与排错
    每次修改 /etc/gitlab/gitlab.rb 后需执行:sudo gitlab-ctl reconfigure;如需重启服务可执行:sudo gitlab-ctl restart。
    若访问异常,检查:域名 DNS A 记录 是否生效、服务器 80/443/22 端口是否开放、证书路径与权限是否正确。

0