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

CloudFront非缓存(no_Caching)参数配置异常排查:关联ALB的缓存/非缓存分发未按预期生效

Troubleshooting CloudFront Caching Issue for /no_cache/ Path

Hey there! Let's dig into why your updated /var/www/html/no_cache/index.html is still serving old cached content from CloudFront. Based on common misconfigurations and your setup description, here are the key checks and fixes to get your non-caching behavior working as expected:

1. Verify Behavior Path Matching & Priority

CloudFront matches requests to behaviors in the order they’re listed (top = highest priority). Make sure:

  • You’ve created a dedicated behavior for the non-caching path with the pattern /no_cache/* (this needs to specifically target your no-cache resources, adjust if your URL structure varies).
  • This non-caching behavior is positioned above your default /* caching behavior. If it’s below, CloudFront will match the default caching behavior first, ignoring your non-caching rules entirely.

2. Fix the Cache Policy for the Non-Caching Behavior

Even if you intended to disable caching, a misconfigured policy might still cause CloudFront to store content. Do this:

  • Assign the AWS-managed Managed-CachingDisabled policy to your /no_cache/* behavior. This pre-built policy completely disables caching (sets all TTLs to 0, skips cache storage, and forces every request to go back to your ALB origin).
  • If using a custom policy, ensure:
    • Minimum TTL, Maximum TTL, and Default TTL are all set to 0.
    • Under "Cache Based on Selected Request Headers", choose All (or at least the headers your origin needs to serve correct content).
    • Set Query Strings and Cookies to All (if your app uses them) to ensure unique requests aren’t incorrectly cached.

3. Check Origin (ALB/Backend Server) Cache Headers

Your backend web server (hosting the index.html files) might be sending cache-control headers that override CloudFront’s settings. For the /no_cache/ path, configure your server (Apache/Nginx) to return these response headers:

Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0

These headers explicitly tell CloudFront (and browsers) not to cache the content, ensuring every request fetches the latest version from your origin.

4. Invalidate Existing CloudFront Cache

Any old versions of /no_cache/index.html cached before you fixed the configuration will still be served until they expire or you invalidate them. To clear the cache immediately:

  • Go to your CloudFront distribution in the AWS Console.
  • Navigate to the Invalidations tab.
  • Create a new invalidation with the path /no_cache/* (or /* to clear all cached content) and submit it. This forces CloudFront to fetch fresh content from your origin for subsequent requests.

5. Double-Check Origin Request Policy

Ensure your non-caching behavior uses an origin request policy that forwards all necessary headers, cookies, and query strings to your ALB. If critical request details aren’t forwarded, your origin might not serve the correct updated content (or might serve cached content from its own layers).

Once you apply these changes, update your /var/www/html/no_cache/index.html again and test—you should see the new content right after the invalidation completes.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 08:57:29