【问题标题】:Host all GitLab pages on the same domain在同一域上托管所有 GitLab 页面
【发布时间】:2022-01-23 12:59:01
【问题描述】:

我有一个自托管的 GitLab 实例(版本 14.x)。

最近我设置了 GitLab 页面。使用我当前的设置(据我所知,这是标准设置),GitLab 页面托管在:

http[s]://group-or-username.pages.mydomain.com/subgroups/project

我不想为每个组或用户名使用子域。我希望组或用户名成为路径的一部分:

http[s]://pages.mydomain.com/组或用户名/子组/项目

是否可以通过这种方式配置 GitLab 页面?

GitLab 文档mentions a workaround。但是,这不是我的选择。

【问题讨论】:

    标签: gitlab gitlab-pages


    【解决方案1】:

    无法以受支持的方式直接配置页面以获得超出文档中描述的效果。但是可能有一种方法可以通过额外的架构来解决这个限制。

    原则上,您可以设置一个反向代理(比如 nginx)配置来执行此操作,前提是您实际上拥有通配符 DNS(或类似解决方案),至少对于反向代理服务器本身而言。

    类似这样的东西,在 nginx 的情况下:

    server {
        server_name pages.mydomain.com;
        location /(?<group_or_username>.*)/(?<pages_path>.*) {
            proxy_pass http://$group_or_username.pages.mydomain.com/$pages_path;
        }
    }
    

    您可能需要考虑使用过滤器来重写 HTML 内容,例如,修复可能使用子域模式的绝对链接。

    当然,GitLab 仍然会在 Pages 设置 UI 中显示子域模式,这在很大程度上是不可避免的,除非你想修改 GitLab 源代码或在 GitLab 本身前面放置一个代理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-01
      • 2019-04-26
      • 2017-11-13
      • 2014-09-23
      • 2021-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多