You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

GitLab 10.5.6 IP白名单配置健康检查遇阻求助

嘿,我刚好折腾过从旧版GitLab升级后配置健康检查IP白名单的问题,给你梳理下关键的解决步骤和容易踩的坑:

解决GitLab 10.5.6健康检查IP白名单配置问题

1. 确保配置项写对

你提到的gitlab_rai...应该是gitlab_rails['monitoring_whitelist'],在/etc/gitlab/gitlab.rb里要这么配置:

# 把下面的IP换成你的监控系统IP,多个IP/网段用数组形式
gitlab_rails['monitoring_whitelist'] = ['192.168.1.100', '10.0.0.0/24']

小贴士:如果之前用过废弃的health_check_access_token配置,记得把它注释掉或者删掉,避免两个配置冲突导致白名单不生效。

2. 处理旧版本升级的兼容问题

因为你的GitLab是从7.x或更早版本升上来的,部分配置可能没自动迁移到位。另外要注意:如果GitLab前面挂了反向代理(比如Nginx),必须确保代理正确传递客户端的真实IP——不然GitLab会把代理服务器的IP当成请求来源,你的监控IP自然会被拦截。

如果用的是GitLab自带的Nginx,要在gitlab.rb里加上这些配置来传递真实IP:

# 替换成你的反向代理所在的IP段
nginx['real_ip_trusted_addresses'] = ['10.0.0.0/24']
nginx['real_ip_header'] = 'X-Forwarded-For'
nginx['real_ip_recursive'] = 'on'

3. 让配置正确生效的步骤

改完gitlab.rb后,千万别直接重启服务!一定要先执行这个命令重新生成配置文件:

sudo gitlab-ctl reconfigure

等这个命令跑完,再重启相关服务确保配置加载:

sudo gitlab-ctl restart gitlab-rails

划重点:gitlab-ctl reconfigure是GitLab配置生效的核心步骤,它会根据gitlab.rb自动生成所有服务的配置文件,直接重启会导致新配置没被加载。

4. 验证配置是否正常工作

从你的监控服务器上用curl访问健康检查端点试试:

curl http://你的GitLab域名/-/health

如果返回OK就说明配置生效了;要是返回403,检查这几点:

  • 监控IP/网段是不是真的在白名单里,CIDR格式有没有写错(比如10.0.0.0/24这种才对)
  • 反向代理是不是正确传递了真实IP,可以看GitLab的日志/var/log/gitlab/gitlab-rails/production.log里的请求IP记录
  • 确认gitlab-ctl reconfigure执行过程中没有报错,日志里有没有相关的配置加载错误

内容的提问来源于stack exchange,提问作者Maciej Szymonowicz

火山引擎 最新活动