【问题标题】:Google App Engine Edge Cache not workingGoogle App Engine 边缘缓存不起作用
【发布时间】:2015-10-04 13:19:42
【问题描述】:

我之前根据以下文章设置了 google appengine 边缘缓存。 http://www.xyhd.tv/2011/11/industry-news/setting-cache-control-headers-in-python-to-take-advantage-of-google-appengines-edgecache/

直到最近它才完美运行。我注意到它不再起作用了 (日志中的所有请求状态码变为 200 而不是 204) 有办法解决吗?

更新 (2015/7/20)

错误已修复!不错!

【问题讨论】:

  • 您使用的是自定义域吗?
  • 经过一些实验。我发现一个奇怪的事情是边缘缓存不适用于自定义域。现在它只适用于 *.appspot.com ..
  • 我建议在 appengine 的公共问题跟踪器上打开一个问题
  • 好主意,我差点忘了问题跟踪器。我现在已经提交问题code.google.com/p/googleappengine/issues/…

标签: python google-app-engine caching


【解决方案1】:

我测试了一条使用边缘缓存的路由,它确实在日志中显示了 204 状态。请务必在您的回复中包含这两个标头。

response.headers['Pragma'] = 'Public'
response.headers['Cache-Control'] = 'public, max-age=%d'%time

在边缘缓存开始之前,通常需要背靠背几次点击。

时间值必须至少为 61 秒。我通常将其设置为至少 120 并且效果很好。

我认为那篇文章没有提到的一件事是,该应用需要开启结算功能才能正常工作。

更新: 我上传了您引用的代码,并在缓存的 url 上获得了 204 响应状态。在下面的屏幕截图中,您将看到第一次命中是 200 状态,然后是 204 秒,边缘缓存开始了。no-cache url 每次都按预期返回 200 秒。

更新(2015 年 7 月 20 日):

现在,当从自定义域或 APP_ID.appspot.com 调用应用引擎应用时,边缘缓存似乎可以正常工作。我现在在日志中看到了 204 响应代码。没有更改任何代码。

【讨论】:

  • 这里还是不行。我尝试使用以下代码。 github.com/lucemia/appengine-edge-cache-test 。并使用以下自定义域进行测试。 temp.gliacloud.com/test/cache
  • 可以尝试删除 Expires 标头。这可能会导致问题。如果有机会,我会尝试运行相同的代码示例。
  • 经过一些实验。我发现边缘缓存不适用于自定义域的奇怪事情。现在它只适用于 *.appspot.com...
  • 是的,我上面的成功测试是使用 *.appspot.com 域。如果有机会,我将使用我的自定义域之一重试。
  • 谢谢,您的测试结果将非常有助于我澄清问题。我很确定自定义域边缘缓存在过去有效......在我看来,自定义域或谷歌反向代理的行为很奇怪。
猜你喜欢
  • 2018-02-24
  • 2013-01-02
  • 2016-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多