缓存的 Cloudfront 页面是否与原始服务器交互?
Do cached Cloudfront pages interact with the origin server?
我从某人那里继承了一个复杂的 AWS 系统,但我几乎没有 AWS 经验。我正在阅读文档并进行培训,但有一件事我无法弄清楚:当有人点击 CloudFront 提供的页面时,他们是否能够做出影响源服务器的更改?
我原以为 "no, they're just static pages",但我看到了相反的证据。我们安装了一些 Wordpress,我认为用户在通过管理面板远程登录时会访问 Cloudfront,但他们仍然能够进行更改和发布内容。我也曾在不允许 OPTIONS、PUT、PATCH、POST 和 DELETE 请求的情况下缓存 admin-ajax.php,认为这无关紧要,因为我们的前端站点不使用 ajax.这破坏了需要 ajax 的管理面板,即使直接登录到原始服务器并绕过 Cloudfront 也是如此。
缓存的页面将呈现在浏览器中,但是当用户 "makes changes" 浏览器将发送一个单独的 HTTP GET 或 POST 来自请求页面的请求。 "changes" 请求不会被 CloudFront 缓存,而是转发到源服务器。
请注意,您需要适当地配置 CloudFront 以尊重服务器的缓存 headers 并将参数视为缓存键等,以便它正常工作。您还可以为特定路径配置 CloudFront 行为,例如 /admin/*
以防止在该路径缓存页面等。
我从某人那里继承了一个复杂的 AWS 系统,但我几乎没有 AWS 经验。我正在阅读文档并进行培训,但有一件事我无法弄清楚:当有人点击 CloudFront 提供的页面时,他们是否能够做出影响源服务器的更改?
我原以为 "no, they're just static pages",但我看到了相反的证据。我们安装了一些 Wordpress,我认为用户在通过管理面板远程登录时会访问 Cloudfront,但他们仍然能够进行更改和发布内容。我也曾在不允许 OPTIONS、PUT、PATCH、POST 和 DELETE 请求的情况下缓存 admin-ajax.php,认为这无关紧要,因为我们的前端站点不使用 ajax.这破坏了需要 ajax 的管理面板,即使直接登录到原始服务器并绕过 Cloudfront 也是如此。
缓存的页面将呈现在浏览器中,但是当用户 "makes changes" 浏览器将发送一个单独的 HTTP GET 或 POST 来自请求页面的请求。 "changes" 请求不会被 CloudFront 缓存,而是转发到源服务器。
请注意,您需要适当地配置 CloudFront 以尊重服务器的缓存 headers 并将参数视为缓存键等,以便它正常工作。您还可以为特定路径配置 CloudFront 行为,例如 /admin/*
以防止在该路径缓存页面等。