无法通过CloudFront和域名连接EC2上的ASP.Net服务器
问题诊断与修复方案
核心配置错误
- CloudFront源端口不匹配:你的ASP.NET服务监听7000(HTTP)和7001(HTTPS),但当前CloudFront是用默认的80/443端口尝试连接源站,这直接导致CloudFront无法和EC2上的服务建立会话,触发502错误。
- 访问方式错误:你用
https://ecomserver.co.za:7001/...访问是完全错误的——CloudFront作为CDN对外只暴露标准443(HTTPS)和80(HTTP)端口,正确的访问路径应该是https://ecomserver.co.za/api/products/4/get,CloudFront会负责转发请求到源站的对应端口。
修复步骤
- 修正CloudFront源站设置
- 登录CloudFront控制台,找到目标分发,进入「源」标签编辑源配置
- 根据你想要的加密方式设置源端口:
- 如果选择源协议为HTTPS,将端口设为7001(需确保EC2上的ASP.NET服务7001端口的SSL配置有效)
- 如果选择源协议为HTTP,将端口设为7000(CloudFront对外仍用HTTPS,仅源站通信用HTTP)
- 确认源域是EC2公网IPv4 DNS(这部分你已经配置正确)
- 验证缓存行为配置
- 确认缓存行为的「查看器协议策略」为「重定向HTTP到HTTPS」(你已配置,无需修改)
- 确保允许的HTTP方法覆盖你的API需求(你设置了允许所有,这部分没问题)
- 安全组补充验证
- 虽然你开放了所有入站流量,但如果后续要收紧权限,需确保7000/7001端口允许CloudFront的IP段访问
- 等待配置生效
- CloudFront配置修改后需要10-15分钟全局部署,修改完成后不要立即测试,等待生效时间
额外提醒
- 永远不要直接在域名后追加源站的非标准端口访问,CloudFront的核心作用之一就是对外隐藏源站的端口细节
- 确认你的ACM证书是在
us-east-1区域创建的(CloudFront要求证书必须部署在该区域,你提到证书有效,大概率没问题,但可以快速验证)
内容的提问来源于stack exchange,提问作者Franco
相关产品推荐
相关产品推荐

