GitLab Pages URL配置咨询:能否调整默认基础URL为子域名格式?
当然可以配置成子域名形式!
完全没问题,GitLab Pages支持将基础URL配置为http(s)://<project>.<namespace>.company.io/这种子域名格式,下面是具体的配置步骤和注意事项:
前提条件
- 你的GitLab实例(不管是自托管还是GitLab.com)支持自定义域名配置;
- 你拥有
company.io域名的DNS管理权限。
具体配置步骤
1. 配置DNS通配符记录
首先需要在你的域名服务商处添加一条通配符DNS记录,让所有<project>.<namespace>.company.io形式的子域名都指向GitLab Pages服务器:
- 如果用CNAME记录:创建
*.namespace.company.io,指向你的GitLab Pages服务器域名(比如自托管的话可能是pages.company.io,GitLab.com的话是gitlab.io); - 如果用A记录:创建
*.namespace.company.io,指向GitLab Pages服务器的公网IP地址。
2. 在GitLab项目中配置自定义域名
进入目标项目的Settings > Pages页面:
- 点击「New domain」按钮;
- 在域名输入框中填写
your-project.your-namespace.company.io(替换成实际的项目和命名空间名称); - 按照页面提示完成域名验证(通常需要添加一条TXT记录到DNS中,验证你对该域名的所有权);
- 验证通过后,GitLab会自动处理后续的部署关联。
3. 调整项目静态资源路径
因为之前的URL是带项目路径的,现在切换到子域名根路径后,需要确保项目中的静态资源引用是相对路径,或者在静态生成工具中配置根路径:
- 比如用Jekyll的话,在
_config.yml中设置baseurl: "/"; - 用Hugo的话,设置
baseURL = "/"; - 如果是纯静态HTML,确保所有链接、图片路径都是相对路径(比如
./css/style.css而不是/your-project/css/style.css)。
4. 启用HTTPS(可选但推荐)
配置好域名后,在GitLab Pages的域名设置中可以开启「Force HTTPS」选项,GitLab会自动通过Let's Encrypt为你的子域名签发SSL证书,确保访问安全。
自托管GitLab额外注意事项
如果是自托管的GitLab实例,管理员还需要在gitlab.rb配置文件中做以下设置:
- 开启Pages的外部URL支持:
pages_external_url "https://pages.company.io/"; - 允许通配符域名:
pages_nginx['custom_gitlab_server_config'] = "server_name *.company.io;"; - 重启GitLab服务使配置生效:
sudo gitlab-ctl reconfigure。
内容的提问来源于stack exchange,提问作者xiang
相关产品推荐
相关产品推荐

