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

如何配置AWS CloudFront仅缓存特定POST请求?

如何配置AWS CloudFront仅缓存特定POST请求的响应

可以实现这个需求,CloudFront支持通过自定义缓存策略和行为规则,精准控制只缓存符合条件的POST请求响应,具体步骤如下:

1. 开启POST请求的缓存支持(创建自定义缓存策略)

  • 登录AWS CloudFront控制台,进入「缓存策略」页面,点击「创建缓存策略」
  • 在「缓存键设置」中,选择「包含指定的查询字符串」,输入q(匹配带q参数的请求)
  • 找到「HTTP方法缓存」选项,勾选「POST」(CloudFront默认只缓存GET/HEAD请求,必须手动开启POST缓存)
  • 根据业务需求设置缓存过期时间(比如TTL),完成后保存这个自定义缓存策略

2. 添加针对性的行为规则

  • 进入你的CloudFront分发详情页,切换到「行为」标签,点击「创建行为」
  • 路径模式填/*(如果目标请求有固定路径前缀,可以填更精确的路径,比如/api/*)
  • 在「缓存策略」下拉框中选择刚才创建的自定义缓存策略
  • 点击「添加条件」,设置两个匹配条件:
    • 条件类型选「HTTP方法」,匹配值选「POST」
    • 条件类型选「查询字符串」,选择「等于」匹配,输入q="sometext"(如果需要匹配包含sometext的任意值,可以用通配符*sometext*)
  • 确保「缓存行为」设置为「缓存」,其他配置按需调整后保存行为

3. 验证配置效果

  • 等待CloudFront分发部署完成(一般需要5-15分钟)
  • 发送POST请求到CloudFront域名,携带?q="sometext"参数,查看响应头的X-Cache字段,如果显示「Hit from cloudfront」,说明缓存已生效
  • 测试其他请求(比如q为其他值的POST请求、GET请求),确认这些请求的响应不会被CloudFront缓存

注意事项

  • 源服务器不能返回Cache-Control: no-cache、Pragma: no-cache这类禁用缓存的响应头,否则CloudFront不会缓存该响应
  • 如果需要缓存所有带q参数的POST请求,而非仅q="sometext",可在缓存策略中选择「包含所有查询字符串」,而非指定单个参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:32:33