我们在App Engine中有一个Web应用程序 . 我想知道将我的静态资源(即图像,CSS文件和JS文件)从App Engine中移出并从Google Cloud 端存储中提供它们是否是一个好主意 .
我在这里的想法是双重的:
1)我们可以通过Google Cloud 端存储获得CDN的优势 . 我们甚至可以为每个文件配置元数据以设置过期标头,gzip压缩等 . 此外,通过提供来自不同域的文件,我们可以让浏览器并行下载更多内容 .
2)通过从App Engine卸载一些文件,实例消耗将减少(对App Engine的请求减少),因此成本将下降 .
我对吗?这是明智之举吗?
谢谢,
3 回答
这些都没有意义 .
1)App Engine具有类似CDN的功能's edge cache. Unfortunately, it'没有详细记录 . 有's a few Google I/O talks on it. Here'是一个开始:http://eng.pulse.me/backend-tips-the-free-cdn/有足够的's another talk in Google I/O 2012 that you can find as well. Your static files will be served with the edge cache if they'访问,因此无需为此移动到GCS .
2)有充分证明静态文件不占用实例 . 你已经读过这个了,所以你的'偏执狂'只是偏执狂,而且没有意义 . 通过将新版本上传到app引擎,访问静态文件以及在Admin中检查新实例,也可以非常轻松地进行测试 .
你是对的,你接受的答案是错的 . 从官方文档中回答您的问题:
https://cloud.google.com/storage/docs/website-configuration
Google Cloud 端存储的行为基本上类似于内容交付网络(CDN),您无需担心任何工作,因为默认情况下,公共可读对象会缓存在Google Cloud 端存储网络中 .
使用Google Cloud 端存储时,访问内容的带宽费用通常会降低 .
从Google Cloud 端存储提供静态内容时,Web服务器上的负载会减少 .
你的直觉是对的,这是Google docs的确认:
知道静态文件肯定是使用实例资源提供的 . 边缘缓存确实生效,但这并不能简单地消除整个问题 . 将静态移动到GCS是正确的方法 .
Note, however, 如果您计划从GCS提供静态文件,那么您必须使用负载均衡器或第三方CDN .1703144_ ll必须使用负载均衡器或第三方CDN . 在某些情况下,这可能会更麻烦 . 有关详细信息,请参阅here .