AWS Cloudfront 和 Woocommerce 购物车的问题

Issue with AWS Cloudfront and Woocommerce cart

当我启用 AWS Cloudfront CDN 来加速站点时,我的站点上的 Woocommerce 出现问题。

该站点托管在 AWS EC2 Bitnami 实例上。站点的任何部分都没有托管在 S3 中。

启用 Cloudfront 后,我​​将产品添加到购物车,然后按 shopping-cart 中的“继续结账”按钮,没有任何反应,浏览器只是再次加载 shopping-cart 页面。如果我在 AWS for WordPress 插件中禁用 Cloudfront,那么它会按预期工作并打开结帐页面。这在所有浏览器中都会发生。

此外,如果我更新数量以添加额外选项,则 shopping-cart 页面会重新加载并显示一条消息“您的购物篮是空的”。购物车图标仍然有一个“1”,当我按下它时,shopping-cart 页面返回到位,但我在按下“继续结帐”按钮时遇到同样的问题。

查看浏览器中的开发者工具,没有任何错误指示。这似乎是一些缓存或 cookie 问题。

我有一个 Cloudfront 政策,其中 Origin、Access-Control-Request-Method 和 Access-Control-Request-Headers 在 headers 中被列入白名单,以解决字体文件的 CORS 问题这按预期工作并且字体加载正确,之前这是字体图标不会显示的地方,我会收到很多 404 错误。

根据此 Cloudfront + Woocommerce - cart not updating SO post 的一些答案,我尝试将所有 cookie 列入白名单,并将我在调试此问题时添加的 jsut wp_woocommerce_session_* 列入白名单。这些选项都没有任何区别。

我让它工作的唯一方法是禁用 Cloudfront。如果没有它,网站加载速度会很慢,并且 SEO 结果会受到影响。

知道我需要更改哪些设置才能使其正常工作吗?

最后我放弃了官方 AWS 插件,并使用了另一个(免费的)AWS CDN 特定插件,它完成了所有配置并且开箱即用。