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

AWS ELB返回503错误:Jenkins私有子网部署后无法访问求助

Jenkins + 公网ELB出现503错误的排查分析

错误含义解释

HTTP/1.1 503 Service Unavailable: Back-end server is at capacity 这个错误的核心意思是:你的公网ELB无法找到可用的后端Jenkins实例来处理请求。ELB判定后端服务器要么完全无法响应,要么资源耗尽到无法承接新请求,所以返回503错误告知客户端当前服务不可用。

部署配置可能存在的问题

  • 健康检查配置不匹配:
    虽然你开启了健康检查,但如果检查规则和Jenkins实际运行状态不匹配,ELB会把实例标记为不可用。比如Jenkins默认监听8080端口,要是ELB健康检查用的是80端口,肯定会失败;或者健康检查路径用了/,但Jenkins未登录状态下会跳转/login,导致健康检查返回非200状态码,最终ELB认为后端无可用实例。
  • 私有子网与安全组网络阻塞:
    Jenkins在私有子网,得确保:
    • ELB的安全组允许向Jenkins实例的服务端口(默认8080)发起访问;
    • Jenkins实例的安全组允许来自ELB安全组的流量进入服务端口;
    • 私有子网的路由表配置了NAT网关,保证Jenkins实例能出站获取依赖(比如插件、系统更新),否则Jenkins可能启动不完全,无法响应健康检查。
  • Jenkins实例资源耗尽:
    错误提示里的at capacity明确指向资源问题。可以登录Jenkins实例,用top、free -h命令查看CPU、内存使用率,如果资源占满,Jenkins服务会卡顿甚至无法响应请求,自然过不了ELB的健康检查。另外查看Jenkins日志(通常在/var/log/jenkins/jenkins.log),看是否有内存溢出(OOM)或服务崩溃的记录。
  • ELB目标组配置错误:
    如果你用的是Application Load Balancer,要检查目标组:
    • 是否正确关联了Jenkins实例;
    • 端口映射是否正确(比如ELB监听80,目标组要转发到Jenkins的8080端口);
    • 健康检查的阈值设置是否过于严格,比如实例偶尔响应慢就被标记为不可用,导致没有可用后端。
  • DNS解析(可能性较低):
    虽然curl访问子域名能返回ELB的503,说明解析基本正常,但还是可以用nslookup jenkins.dopsops.tech确认解析到的地址确实是你的ELB公网地址,排除DNS缓存或配置错误的极端情况。

内容的提问来源于stack exchange,提问作者Richard Rublev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 06:20:52