Google AppEngine,多个自定义域和静态文件

时间:2014-04-01 21:52:41

标签: google-app-engine

我正在使用自定义域X.com处理在Google AppEngine(Java)上运行的应用程序。为应用程序的每个用户分配一个自定义URL,格式为userName.Y.com。目前,X.com和* .Y.com都分配给AppEngine应用程序,我有一个servlet过滤器,用于确定访问userName.Y.com时要返回的数据。

问题是,当使用静态文件时。如果我有一个静态文件X.com/index.html,当我访问userName.Y.com/index.html时,我可以访问同一个文件,并且我的过滤器根本没有被调用。我怀疑是因为index.html是一个静态文件,它是在JVM之外提供的,并且没有调用过滤器。

以下是我考虑过的事情:

  1. 我可以在X.com中创建动态的所有内容(不是静态文件) - 然后过滤器将启动,一切都将按预期工作。但是,这对性能来说并不理想。
  2. 我可以部署2个不同的应用程序,一个用于X.com中的文件,另一个用于为Y.com获取数据 - 这对于维护非常繁重,因为我必须确保一切都是同步的,我需要在Y.com中公开过滤器的API以访问存储在X.com中的数据。
  3. 同样,我可以将我的静态文件复制到CDN,并使所有内容动态化 - 然后执行304以从CDN提供静态文件。这也有性能影响。
  4. 似乎我认为没有一种解决方案是理想的(在性能和维护方面) - 有更好的方法吗?理想情况下,我需要的解决方案不涉及多个部署(多个应用程序或版本),但不会造成严重的性能损失。

1 个答案:

答案 0 :(得分:0)

解决方案1是迄今为止最简单的方法,您可以完全控制将要提供的服务。在性能方面,我也不担心。如果您使用服务器响应发送正确的缓存控制标头,那么GAE前端将在不触及您的实例的情况下为您的文件提供服务。