DigitalOcean负载均衡器无法连接Droplet,如何配置访问后端API?
解决DigitalOcean负载均衡器503错误的配置调整
核心问题定位
你的503错误根源是负载均衡器的健康检查配置与后端服务不匹配:
- 健康检查目标设为
http://0.0.0.0:80/,但你的API服务运行在容器的8080端口,且0.0.0.0是服务的监听地址(并非负载均衡器可访问的后端节点地址),同时droplet的80端口没有对应服务,导致健康检查失败,负载均衡器标记后端节点为不可用,从而返回503。
具体调整步骤
1. 修改健康检查配置
将健康检查的地址和端口调整为与API服务匹配:
- 健康检查地址改为:
http://localhost:8080/(如果你的API有专门的健康检查端点,比如/health,也可以用该路径) - 确保健康检查的端口为8080,保证负载均衡器能通过droplet的网络访问到容器内的服务。
2. 优化转发规则(可选)
当前的两条转发规则:
- HTTP 80 -> 8080
- HTTP 8080 -> 8080
如果不需要对外暴露8080端口,保留第一条规则即可,第二条可根据业务需求删除。
3. 验证后端网络连通性
- 确认droplet的防火墙(如
ufw)允许访问8080端口,执行命令开放端口:
ufw allow 8080/tcp
- 检查容器端口映射是否正确,确保启动容器时使用了
-p 8080:8080,保证droplet的8080端口能转发到容器内的API服务。
4. 确认后端节点状态
修改配置后等待2-3分钟,查看负载均衡器的后端节点状态,当节点显示为healthy时,再尝试通过负载均衡器访问API。
内容的提问来源于stack exchange,提问作者neil_ruaro
相关产品推荐
相关产品推荐

