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




