Cloudfront + Woocommerce - 购物车未更新

Posted

技术标签:

【中文标题】Cloudfront + Woocommerce - 购物车未更新【英文标题】:Cloudfront + Woocommerce - cart not updating 【发布时间】:2018-02-17 22:17:45 【问题描述】:

我最近将 cloudfront 添加到我在 AWS 上托管的 wordpress 网站。

起初我的购物车不会注册任何添加到其中的产品 - 所以我在云端做了一个行为,不缓存购物车、我的帐户和结帐页面。

现在我的用户一次只能添加一个产品 - 添加一秒后,它会覆盖最初添加的内容。

我相信这一定是cloudfront的缓存行为有问题。任何人都可以帮助我进行哪些设置才能让 woocommerce 与 cloudfront 配合得很好?

这是我的设置:

【问题讨论】:

【参考方案1】:

这是我用来解决问题的方法。我使用 AWS wordpress 插件设置了 Cloudfront。它为我创建了一个具有 5 种不同“行为”的分布。通过登录 AWS CloudFront 控制台并导航到分配设置中的“行为”选项卡可以找到这些行为。

以下是分步说明。 前往云端。找到你的分布。单击 ID 或单击复选框并打开设置。找到“行为”选项卡并在其中打开。您应该在其中有一个“默认(*)”行为。打开并编辑该行为。将“wp_woocommerce_session_*”添加到“白名单 Cookie”框中,然后单击“是,编辑”以在页面底部进行更新。更改应立即生效。

您可能还希望将这些 Cookie 列入白名单:

woocommerce_items_in_cart*
woocommerce_cart_hash*
woocommerce_recently_viewed*
wp-resetpass* (for WP password resets)

你可以阅读更多关于Woocommerce cookies here:

【讨论】:

【参考方案2】:

我最终通过将云端的所有 cookie 列入白名单来解决这个问题。

我尝试只将 woocommerce cookie 列入白名单,但这不起作用 - 所以不确定我缺少哪些,将在接下来的几天内继续探索

与此同时,如果存在安全风险,任何人都可以回答将 Cloudfront 中的所有 cookie 列入白名单吗?

【讨论】:

风险不是安全,而是性能。统计上,您转发的 cookie 越多,缓存命中率就越低,但最显着的影响是转发任何 cookie 的影响,所以这不是真正的问题,在这里。这里的问题是,除非您确定是哪个特定的 cookie 存在问题,否则转发额外的 cookie 可能只是在您的测试期间巧合地解决了问题,并且可能没有完全解决。 很抱歉,我理解了您的部分评论,但不是最后一部分 - 您是说问题可能不是因为 cookie 转发,而是意外解决了吗? 正确。听起来它修复了它,但您需要了解您的应用程序是如何工作的,以便验证这一点。您不必转发所有 cookie,而可能只转发一个或多个附加 cookie。检查站点的响应标头,查找 Set-Cookie 以查看站点要求浏览器添加的内容。【参考方案3】:

我列入白名单的 cookie 是 wp_woocommerce_session_*。这解决了我遇到的同样问题。

【讨论】:

以上是关于Cloudfront + Woocommerce - 购物车未更新的主要内容,如果未能解决你的问题,请参考以下文章

CLOUDFRONT EC2 源错误 CloudFront 试图建立与源的连接 [重复]

CloudFront / S3 ETag:CloudFront 是不是可以在 CF TTL 过期之前发送更新的 S3 对象?

来自 Cloudfront 的 HIT 后来自 Cloudfront 的 MISS

Cloudfront - 重叠备用域名

Cloudfront 域名无法使用 S3、Cloudfront 和 Route 53 将 HTTP 重定向到 HTTPS

在 CloudWatch 仪表板中查看 CloudFront 指标