在相对 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:
-
可选。如果资源不足,你可以通过使用以下命令关闭 GitLab 服务来临时释放一些内存:
sudo service gitlab stop -
创建
/home/git/gitlab/config/initializers/relative_url.rbcp /home/git/gitlab/config/initializers/relative_url.rb.sample \ /home/git/gitlab/config/initializers/relative_url.rb并更改以下行:
config.relative_url_root = "/gitlab" -
编辑
/home/git/gitlab/config/gitlab.yml并取消注释/更改以下行:relative_url_root: /gitlab -
编辑
/home/git/gitlab/config/puma.rb并取消注释/更改以下行:ENV['RAILS_RELATIVE_URL_ROOT'] = "/gitlab" -
编辑
/home/git/gitlab-shell/config.yml并将相对路径附加到以下行:gitlab_url: http://127.0.0.1/gitlab -
确保你已经复制了提供的 systemd 服务,或者按照安装指南中的说明复制了 init 脚本和默认文件。然后,编辑
/etc/default/gitlab并在gitlab_workhorse_options中将-authBackend设置为如下形式:-authBackend http://127.0.0.1:8080/gitlab如果你使用的是自定义 init 脚本,请确保根据需要编辑上述 GitLab Workhorse 设置。
-
重启 GitLab 以使更改生效。
在 GitLab 中禁用相对 URL
要禁用相对 URL:
-
删除
/home/git/gitlab/config/initializers/relative_url.rb -
从第 2 步开始,按照前面的步骤操作,并将 GitLab URL 设置为不包含相对路径的 URL。