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

无法让CloudFront与动态PHP网站正常运行,求排查方案

明显配置错误分析
  • 源域名循环解析:这是触发403错误的核心原因。你将CloudFront的源域名设置为www.example.com,但Route53中www.example.com的A记录是CloudFront分发的ALIAS,导致CloudFront解析源时指向自身,根本无法连接到EC2实例,直接返回403错误,自然不会生成源访问日志。
  • 潜在Host头匹配问题:当前源请求策略为AllViewer,会将查看器的Host头(www.example.com)传递给源。后续修复源域名后,需确保Nginx配置允许该Host头的访问请求。
调试与修复步骤

1. 解决源域名循环问题

  • 在Route53中新增一条A记录(例如origin.example.com),指向EC2实例的公网IP。
  • 修改CloudFront的源配置:将源域名改为origin.example.com,保留HTTPS协议、端口443、最低SSL协议TLSv1.2的原有配置。
  • 等待CloudFront分发更新完成(通常10-15分钟)后,重新测试访问。

2. 验证EC2安全组配置

  • 确保EC2安全组允许CloudFront的IP段访问443端口。可通过AWS官方渠道获取CloudFront的IP范围,或临时开放所有HTTPS访问用于测试(后续再收紧规则)。

3. 确认Nginx配置兼容性

  • 检查Nginx配置,确保origin.example.com(或修改后的源域名)被允许作为Host头访问,同时保证www.example.com的请求能被正确处理(因为源请求策略会传递该Host头)。
  • 验证Nginx的Let's Encrypt证书是否覆盖了新的源域名,或确认CloudFront信任Let's Encrypt颁发的证书(CloudFront默认信任公共CA证书,此步骤通常无需额外配置)。

4. 深挖CloudFront错误细节

  • 使用curl -v https://www.example.com命令访问,查看响应头中的X-Cache和X-Amz-Cf-Id字段,结合CloudFront实时监控面板获取更具体的错误信息。
  • 修复循环问题后,再次检查CloudFront标准日志,确认是否生成源访问记录。

内容的提问来源于stack exchange,提问作者Stefan Gehrig

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:35:13