GAE:与webapp2的启用边缘缓存(蟒蛇)(GAE: Enabling Edge Cache w

2019-08-17 03:45发布

目前已经在YouTube上展示在GAE架构EdgeCaching的强度这一新的视频,并在视频这个特殊的时候,他们表现出它是杠杆多么容易: http://www.youtube.com/watch?v=QJp6hmASstQ #T = 11m12

可惜这不是那么容易......

我正在寻找使用谷歌提供的webapp2的框架,使边缘缓存。

我打电话:

self.response.pragma = 'Public'
self.response.cache_expires(300)

但它似乎被别的东西覆盖。

我得到的标题是:

HTTP/1.1 200 OK
Pragma: Public
Cache-Control: max-age=300, no-cache
Expires: Sat, 23 Feb 2013 19:15:11 GMT
Content-Type: application/json; charset=utf-8
Content-Encoding: gzip
X-AppEngine-Estimated-CPM-US-Dollars: $0.000085
X-AppEngine-Resource-Usage: ms=39 cpu_ms=64
Date: Sat, 23 Feb 2013 19:10:11 GMT
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Cache-Control: no-cache, must-revalidate
Vary: Accept-Encoding
Server: Google Frontend
Content-Length: 600

我使用的是NDB顶层:

app = ndb.toplevel(webapp2.WSGIApplication(...

我试过工艺这里解释,但他们似乎并不适用于webapp2的: http://code.google.com/p/googleappengine/issues/detail?id=2258#c14

我也看了这个帖子太: https://groups.google.com/d/topic/webapp2/NmHXoZZSVvo/discussion

我尝试没有成功手动设置应有尽有。 什么是压倒我的缓存设置。

有没有一种方法,使其与webapp2的工作吗? 其它任何选项是值得欢迎的。

编辑:我使用的是URL,版本前缀: http://version.appname.appspot.com和它可能是我的问题的原因。

Answer 1:

这应该是所有您需要:

self.response.cache_control = 'public'
self.response.cache_control.max_age = 300


Answer 2:

检查缓存详细了解更多信息,可能是你打破了一些规则。 接下来最好的部分:

可以存储在云CDN的响应缓存只有当以下所有条件都为真:

  • 它是通过提供后端服务与启用缓存。
  • 这是一个GET请求的响应。
  • 状态码为200,203,300,301,302,307,或410。
  • 它有一个缓存控制:公共指令。
  • 它有一个缓存控制:S-最大生存周期,缓存控制:最大生存周期,或Expires头。
  • 它可能不是Content-Length头或Transfer-Encoding头。

此外,还有一些支票,这将阻止响应缓存。 如有以下是真实的响应不会被缓存:

  • 它有一个Set-Cookie头。
  • 它的车身超过4 MB。
  • 它具有比接受,接受编码,或其它的值的Vary头部 - 起源。
  • 它有一个缓存控制:无店铺,无缓存,或私人指令。
  • 相应的请求有一个缓存控制:无店指令。


Answer 3:

我猜你是混合了两个相关但不同的想法。

第一个想法,你链接到有关谈判的视频,被安排来在您的应用程序由专门从事提供静态内容的应用程序引擎的服务器池提供某些文件。 这比你的应用程序服务于这些文件,因为不会有启动您的应用程序的新实例来服务一个静态文件的延迟速度更快。 (强烈考虑服务您的.js和.css这样。)这个静态的服务设施完全是在应用程序更新(上传)时间控制,通过声明您在app.yaml (或appengine-web.xml的Java应用程序)。

第二个想法是安排,通过HTTP响应头,为您的应用程序发出要由应用程序引擎之外缓存缓存页面。

如果声明文件为静态,你有过那获得与文件一起担任除HTTP响应头一定的控制。 请参阅有关配置静态文件文档 。



文章来源: GAE: Enabling Edge Cache with webapp2 (Python)