AWS CloudFront配置Beanstalk源站时重定向至源站的解决方法咨询
新版CloudFront搭配Elastic Beanstalk源站避免重定向、启用缓存的配置方法
旧版CloudFront的「Query String Forwarding and Caching」配置项,现已拆分到**缓存策略(Cache Policy)和源请求策略(Origin Request Policy)**两个配置模块中,原需求对应的配置方法如下:
基础配置步骤
- 进入CloudFront控制台,打开目标分发的「行为(Behaviors)」标签页,选中绑定EB源站的行为规则,点击「编辑」
- 下拉找到「缓存键和源请求(Cache key and origin requests)」板块,该板块为新版替代旧转发缓存配置的核心区域
场景1:需基于所有查询字符串缓存内容(对应旧版Forward All, cache based on all选项)
- 「缓存策略」可直接选择系统自带的
CachingOptimized策略;如有自定义需求,可新建缓存策略,在「查询字符串」配置项中选择「包含所有(Include all)」 - 「源请求策略」可直接选择系统自带的
AllViewerExceptHostHeader策略;如你的EB源站需要依赖查询字符串做业务逻辑判断,可自定义源请求策略,在「查询字符串」配置项中选择「包含所有(Include all)」
必配补充项(解决源站重定向的核心配置)
绝大多数CloudFront跳转至EB源站的问题,都由Host头转发配置错误导致,需同步配置:
- 若使用自定义源请求策略,需在「Headers」配置项中添加
Host头到转发列表,或直接选择「包含所有Viewer头(Include all viewer headers)」 - 确认EB实例/负载均衡的安全组已放行CloudFront的IP段,避免访问被拦截触发强制跳转
- 确认CloudFront的源站协议策略与EB负载均衡的监听协议匹配:若EB仅开放HTTP监听,源站协议选择
HTTP only;若EB开放HTTPS监听,优先选择HTTPS only,避免协议不匹配触发跳转
配置验证方法
等待CloudFront分发部署完成(通常耗时5-10分钟)后,可通过以下方式验证:
- 执行
curl -I <你的CloudFront域名/资源路径>命令,查看返回头的X-Cache字段,若出现Hit from cloudfront说明缓存已生效 - 确认返回头中无
Location字段指向EB源站域名,说明未触发源站重定向
内容的提问来源于stack exchange,提问作者Vitaly Karasik DevOps
相关产品推荐
相关产品推荐

