8929 是什么
8929 不是 GitLab 的官方标准端口,而是官方文档里反复出现的示例值:Omnibus 一体化安装内置了 Nginx,当宿主机上的 80 与 443 已被外部 Nginx 或负载均衡占用时,示例把内置 Nginx 改到 8929,再由外置反向代理指向它。因此遇到 GitLab 502 或重定向异常,先确认反代 proxy_pass 的目标端口是 8929 还是其他值,往往比翻应用日志更快定位问题。
基本信息
| 服务 | GitLab Omnibus 内置 Nginx |
|---|---|
| 协议 | TCP/HTTP |
| 用途 | 外置反代指向的内网旁路口 |
| 配置项 | nginx['listen_port'] |
| 配置文件 | /etc/gitlab/gitlab.rb |
| 备注 | 示例端口,不是官方标准 |
典型使用场景
- 反代改造:宿主机已有 Nginx 时把内置 Nginx 挪到旁路口
- 502 排障:确认反代目标端口与内置 Nginx 监听是否一致
- 升级后排障:重跑 gitlab-ctl reconfigure 导致端口回退时定位
- 证书与协议:外置终止 TLS 时与内置 Nginx 的配合方式
- 多实例部署:同一台机器上运行测试与生产实例时的端口规划
- 变更审计:记录端口与反代关系,减少交接成本
GitLab 常见端口
| 端口 | 组件 | 说明 |
|---|---|---|
| 8929 | 内置 Nginx(示例) | 外置反代的目标端口 |
| 8080 | 内置应用服务 | 按版本与部署方式变化 |
| 9090 | Prometheus | 内置监控组件 |
| 9187 | PostgreSQL 导出器 | 内置监控采集 |
配置与验证
配置与验证
# /etc/gitlab/gitlab.rb
# nginx['listen_port'] = 8929
curl -sI http://127.0.0.1:8929/ | head -3 # 直连旁路口验证
gitlab-ctl status nginx # 内置 Nginx 状态
gitlab-ctl show-config | grep -A2 nginx # 生效配置核对
# 反代侧: proxy_pass 需与上面的端口一致,并转发 X-Forwarded-* 头示例端口容易在升级或重跑 reconfigure 后丢失:把端口与反代关系写进变更记录,比事后翻配置文件快得多。
外置反代与内置 Nginx 都要处理转发头与协议:只改端口不补转发头,页面会出现混合内容或错误的重定向地址。
GitLab 的端口不止一个:应用、监控、数据库导出器各占一个,排查时要先确认问题出在哪一层,再决定看哪个端口。
内置组件端口冲突会直接导致 reconfigure 失败:改端口前先核对端口占用情况,避免出现半完成的配置状态。