AWS ALB指向Jenkins的健康检查失败 直接访问返回200如何修复
AWS ALB Jenkins 8443端口健康检查失败修复方案
8443是Jenkins HTTPS服务的常用监听端口,本身不会直接导致健康检查异常,失败原因基本都是ALB健康检查配置与实例侧的访问规则不匹配导致,可按照以下步骤排查修复:
1. 修正健康检查协议与路径配置
- 协议不匹配问题:如果ALB健康检查配置的协议为
HTTP,但Jenkins 8443端口仅监听HTTPS请求,会导致ALB的HTTP探测请求被拦截或跳转,判定失败。你本地直接访问时默认使用HTTPS协议所以返回200。
修复方法:将ALB健康检查的协议修改为HTTPS,匹配Jenkins 8443端口的监听协议。 - 路径配置问题:如果健康检查路径配置为根路径
/,而Jenkins开启了未登录用户跳转、或者配置了自定义上下文路径(比如/jenkins),会导致探测请求返回302/403状态码,判定失败。
修复方法:将健康检查路径修改为Jenkins无鉴权的原生健康端点/login或者/api/json,这两个路径不需要登录即可访问,稳定返回200状态码。
2. 检查安全组与网络ACL规则
- 你本地能访问实例8443端口,不代表ALB的健康检查节点可以访问:ALB健康检查流量来自VPC内部的ALB节点,需要Jenkins实例的安全组入方向开放对应来源的8443端口访问权限。
修复方法:在Jenkins实例安全组的入站规则中,添加允许ALB所在安全组、或者VPC内网段访问8443端口的规则,同时确认VPC网络ACL没有拦截8443端口的出入站流量。
3. 修复证书与主机头匹配问题
- 如果ALB健康检查开启了HTTPS证书域名校验,或者Jenkins配置了基于域名的虚拟主机,ALB默认使用实例私有IP作为主机头发送探测请求,会出现证书域名不匹配、虚拟主机匹配失败的问题。
修复方法:关闭ALB健康检查的证书域名校验功能,或者在健康检查配置中指定与Jenkins证书匹配的主机头域名。
配置完成后等待30~60秒,查看ALB目标组的目标健康状态,即可确认修复是否生效。
内容的提问来源于stack exchange,提问作者Kaguei Nakueka
相关产品推荐
相关产品推荐

