我正在使用自定义域X.com在Google AppEngine(Java)上运行的应用程序上工作。为应用程序的每个用户分配一个自定义URL,格式为userName.Y.com。目前,X.com和* .Y.com都分配给AppEngine应用程序,并且我有一个servlet筛选器,用于确定访问userName.Y.com时要返回的数据。Google AppEngine,多个自定义域和静态文件
但是,问题是使用静态文件时。如果我有一个静态文件X.com/index.html,当我访问userName.Y.com/index.html时,我可以访问同一个文件,并且我的过滤器根本没有被调用。我怀疑这是因为index.html是一个静态文件,它在JVM之外提供,并且不会调用该过滤器。
这里是我考虑的事情:
- 我可以让一切都在X.com动态(而不是静态文件) - 然后过滤将踢,预期这样就可以了。但是,这对于性能并不理想。
- 我可以部署2个不同的应用程序,一个用于X.com中的文件,另一个用于获取Y.com的数据 - 这对于维护非常重要,因为我必须确保所有内容都处于同步状态,而且我需要公开Y.com中的过滤器的API以访问存储在X.com中的数据。
- 同样,我可以将我的静态文件复制到CDN,并使所有动态 - 然后做一个304服务静态文件从CDN。这也有性能影响。
看来没有一个我认为是理想的解决方案(就性能和维护而言) - 有没有更好的方法?理想情况下,我需要一个不涉及多个部署(不管是多个应用程序还是多个版本)的解决方案,但不会有很大的性能损失。
为什么不使用cloudstorage来为您的文件提供服务。谷歌会做的服务。但是(来自文档):您只能使用HTTP的CNAME重定向,而不能使用HTTPS。 – voscausa
是的,不幸的是,我需要HTTPS - 另外,它类似于选项2,我必须管理2个部署 - 但它听起来比选项2更好! –
它类似于CDN。除了html文件外,我用它来处理各种文件,并使用CDN(Google存储)域名。我为我的域的文件使用不同的云存储文件夹。 – voscausa