You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署带反向代理的Gitlab实例Pages服务访问404故障排查

问题根因
  • 你配置的Gitlab主站域名和Pages泛域名解析到同一IP,所有80端口请求默认都被Gitlab内置的主站Nginx接收,你当前的gitlab.rb配置未开启Pages对应的Nginx代理规则,导致*.pages.example.io的请求无法转发到后端Gitlab Pages服务,直接返回404。
  • 日志显示Gitlab Pages服务最终已成功连接内部API,且静态文件已生成在指定路径,说明Pages服务本身运行正常,问题完全出在请求路由环节。
解决方案
  1. 补充gitlab.rb配置,在原有配置基础上新增以下内容:
# 原有配置保留
pages_external_url "http://pages.example.io"
gitlab_pages['enable'] = true
# 新增配置:开启Pages对应的Nginx反向代理规则
pages_nginx['enable'] = true
  1. 执行配置生效命令:
    gitlab-ctl reconfigure
    如果是Docker部署,进入Gitlab容器内部执行上述命令即可。
  2. 验证服务状态:
    执行gitlab-ctl status确认nginx和gitlab-pages服务均处于运行状态,可通过以下命令验证Pages服务本身可正常响应:
curl -H "Host: group_test.pages.example.io" http://127.0.0.1:8090/group_nested/project_test

如果返回index.html的内容,说明服务运行正常。
4. 权限配置校验:如果项目为私有项目,可进入项目「设置」→「Pages」页面,关闭Pages访问控制,允许匿名用户访问,避免权限限制导致的404问题。
5. 外层代理配置(可选):如果你的Docker容器外层还部署了独立的Nginx反向代理,需要在外层Nginx中添加配置,将所有Host为*.pages.example.io的请求转发到Gitlab容器的80端口。

完成上述操作后重新访问Pages地址即可正常加载内容。

内容的提问来源于stack exchange,提问作者Сергей Литвинов

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 21:15:06