将AWS Elastic Beanstalk环境路由到自定义域名时出现ERR_CONNECTION_REFUSED错误
排查自定义域名绑定ELB的连接拒绝问题
1. 确认DNS解析配置
- 必须将
hoodie.dev的DNS记录指向ELB的官方域名,而非直接指向EC2实例。如果用Route 53,建议创建别名类型的A记录直接关联ELB,或者用CNAME记录指向ELB的完整域名(例如xxx.us-east-1.elasticbeanstalk.com)。 - 用
nslookup hoodie.dev或dig hoodie.dev命令验证解析结果,确认返回的是ELB的IP或域名。
2. 检查ELB监听器配置
- 登录AWS控制台进入ELB管理页,查看负载均衡器的监听器:
- 确认HTTPS(443端口)监听器已创建,且关联了你配置好入站规则的安全组。
- 检查监听器绑定的后端目标组/EC2实例健康状态,若健康检查失败,ELB会直接拒绝流量。
- HTTPS监听器必须绑定有效SSL证书(ACM证书或自行上传的证书),证书无效或未绑定会直接导致连接异常。
3. 验证安全组与网络ACL
- 除了入站规则,检查ELB安全组的出站规则:必须允许ELB向后端实例转发流量(比如HTTP 80或HTTPS 443端口),否则无法完成请求转发。
- 若ELB在VPC内,检查VPC的网络ACL:入站规则要允许443端口流量,出站规则要允许1024-65535端口的TCP返回流量(网络ACL是无状态的,入站出站都需配置)。
4. 检查后端实例配置
- 后端EC2实例的安全组,需允许ELB的安全组访问其服务端口(比如80或443),建议直接限制为ELB安全组,既安全又能避免范围过大的配置错误。
- 登录实例用
netstat -tulpn命令检查服务端口监听状态,确认Nginx、Apache等服务正在运行且监听了正确端口。
5. 直接测试ELB的HTTPS访问
- 直接访问ELB的HTTPS地址(例如
https://xxx.us-east-1.elasticbeanstalk.com),若此地址也无法访问,说明问题出在ELB本身的HTTPS配置,与自定义域名无关;若能正常访问,问题大概率在自定义域名的DNS解析或SSL证书覆盖范围。
6. 确认SSL证书的域名覆盖
- 如果用ACM证书,需确认证书的域名列表包含
hoodie.dev或*.hoodie.dev(子域名场景)。若证书仅覆盖EB的子域名,访问自定义域名时会触发证书验证失败,进而导致连接被拒绝。
内容的提问来源于stack exchange,提问作者kesect
相关产品推荐
相关产品推荐

