Help us learn about your current experience with the documentation. Take the survey.

在相对 URL 下安装 GitLab

  • Tier: 免费、高级版、旗舰版
  • Offering: GitLab 自托管版本

虽然你应该将 GitLab 安装在独立的(子)域名上,但有时由于各种原因,这并不可能。在这种情况下,GitLab 也可以安装在相对 URL 下,例如 https://example.com/gitlab

本文档描述了如何从源码安装 GitLab 时在相对 URL 下运行 GitLab。如果你使用的是官方 Linux 包,步骤是不同的。如果你是第一次安装 GitLab,请结合安装指南使用本指南。

相对 URL 的嵌套深度没有限制。例如,你可以在 /foo/bar/gitlab/git 下提供 GitLab 服务,没有任何问题。

更改现有 GitLab 安装的 URL 会更改所有远程 URL,因此你必须手动编辑任何指向你的 GitLab 实例的本地仓库中的 URL。

要从相对 URL 提供 GitLab 服务,你必须更改的配置文件列表如下:

  • /home/git/gitlab/config/initializers/relative_url.rb
  • /home/git/gitlab/config/gitlab.yml
  • /home/git/gitlab/config/puma.rb
  • /home/git/gitlab-shell/config.yml
  • /etc/default/gitlab

完成所有更改后,你必须重新编译资源并重启 GitLab

相对 URL 需求

如果你使用相对 URL 配置 GitLab,必须重新编译资源(包括 JavaScript、CSS、字体和图像),这可能会消耗大量 CPU 和内存资源。为了避免内存不足错误,你的计算机上至少应有 2 GB 可用 RAM,我们推荐 4 GB RAM,以及四到八个 CPU 核心。

更多信息请参见需求文档。

在 GitLab 中启用相对 URL

不要对你的 Web 服务器配置文件进行任何与相对 URL 相关的更改。相对 URL 支持是由 GitLab Workhorse 实现的。


此过程假设:

  • GitLab 在 /gitlab 下提供服务
  • GitLab 安装所在的目录是 /home/git/

要在 GitLab 中启用相对 URL:

  1. 可选。如果资源不足,你可以通过使用以下命令关闭 GitLab 服务来临时释放一些内存:

    sudo service gitlab stop
  2. 创建 /home/git/gitlab/config/initializers/relative_url.rb

    cp /home/git/gitlab/config/initializers/relative_url.rb.sample \
       /home/git/gitlab/config/initializers/relative_url.rb

    并更改以下行:

    config.relative_url_root = "/gitlab"
  3. 编辑 /home/git/gitlab/config/gitlab.yml 并取消注释/更改以下行:

    relative_url_root: /gitlab
  4. 编辑 /home/git/gitlab/config/puma.rb 并取消注释/更改以下行:

    ENV['RAILS_RELATIVE_URL_ROOT'] = "/gitlab"
  5. 编辑 /home/git/gitlab-shell/config.yml 并将相对路径附加到以下行:

    gitlab_url: http://127.0.0.1/gitlab
  6. 确保你已经复制了提供的 systemd 服务,或者按照安装指南中的说明复制了 init 脚本和默认文件。然后,编辑 /etc/default/gitlab 并在 gitlab_workhorse_options 中将 -authBackend 设置为如下形式:

    -authBackend http://127.0.0.1:8080/gitlab

    如果你使用的是自定义 init 脚本,请确保根据需要编辑上述 GitLab Workhorse 设置。

  7. 重启 GitLab 以使更改生效。

在 GitLab 中禁用相对 URL

要禁用相对 URL:

  1. 删除 /home/git/gitlab/config/initializers/relative_url.rb

  2. 从第 2 步开始,按照前面的步骤操作,并将 GitLab URL 设置为不包含相对路径的 URL。