Gitlab EE - 没有通配符域的 Gitlab 页面设置

问题描述 投票:0回答:1

我不知道如何在没有通配符域的自托管 Gitlab 实例上设置 Gitlab 页面。例如我有1台服务器,有3个公网IP地址和域名:

  • 10.8.0.10 (git.example.com) - 主 GitLab 实例
  • 10.8.0.11 (registry.example.com) - 容器注册表
  • 10.8.0.12 (pages.example.com) - GitLab 页面

然后我设置了 Omnibus 配置

/etc/gitlab/gitlab.rb
,如下所示:

external_url 'https://git.example.com'
nginx['enable'] = true
nginx['listen_addresses'] = ['10.8.0.10']


registry_external_url 'https://registry.example.com'
registry_nginx['enable'] = true
registry_nginx['listen_addresses'] = ['10.8.0.11']
registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/git.example.com.crt"
registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/git.example.com.key"

pages_external_url 'https://pages.example.com'
pages_nginx['enable'] = false
gitlab_pages['enable'] = true
gitlab_pages['cert'] = "/etc/gitlab/ssl/pages.example.com.crt"
gitlab_pages['cert_key'] = "/etc/gitlab/ssl/pages.example.com.key"
gitlab_pages['external_http'] = ['10.8.0.12:80']
gitlab_pages['external_https'] = ['10.8.0.12:443']

例如,我有一个项目位于 https://git.example.com/somegroupname/project。我可以通过 https://registry.example.com/somegroupname/project 访问该项目的容器注册表,并使用命令

docker pull registry.example.com/somegroupname/project
拉取 Docker 映像。

我知道 GitLab Pages 将命名空间设置为 A 记录。就我而言,它的设置类似于 https://somegroupname.pages.example.com/project,但我无法使用此类域名。相反,我想将命名空间放置在这样的路径中:
https://pages.example.com/somegroupname/project
但我找不到任何设置或参数来启用此行为,并且它不适用于当前设置。所有页面都正确存储在默认路径

/var/opt/gitlab/gitlab-rails/shared/pages/
中。有人可以帮我吗?

gitlab self-hosting gitlab-api gitlab-omnibus gitlab-pages
1个回答
0
投票

现在应该由 GitLab 16.7 支持(2023 年 12 月):

使用没有通配符 DNS 的 GitLab 页面

以前,要创建 GitLab Pages 项目,您需要一个格式类似于

name.example.io
name.pages.example.io
的域。
此要求意味着您必须设置通配符 DNS 记录和 SSL/TLS 证书。

在 GitLab 16.7 中,您可以设置一个 GitLab Pages 项目,无需 DNS 通配符。此功能是一个实验。

取消对通配符证书的要求可以减轻与 GitLab 页面相关的管理开销。由于组织对通配符 DNS 记录或证书的限制,一些客户无法使用 GitLab Pages。

我们欢迎在 issue 434372 中提供与此功能相关的反馈。

请参阅文档问题

© www.soinside.com 2019 - 2024. All rights reserved.