我们将googleappengine名称空间用于多租户应用程序。每个租户都有不同的域。一些域需要启用ssl,但有些域不需要ssl。对于确实需要ssl的域,我希望所有旧的http链接重定向到它们的https等价物。在
如果我们在应用程序yaml,则不需要ssl的域(没有证书的域)将无法工作,因为所有请求都重定向到https。在
我假设我需要在webapp路由中处理到https的重定向,这取决于请求的域。 我已经尝试过这里概述的“app_scheme”方法How to use WSGI to reroute a user from http to https,但是如果通过http访问,它不能处理到https的重定向。在
有没有一种方法可以在不重写所有域路由的情况下处理重定向?在
替代方法:您可以有两个应用程序,一个用于http域,一个用于https域,共享相同的应用程序代码,除了
.yaml
配置文件中的secure: always
设置(可以通过简单的VCS repo分支策略实现)。无需重新编写规则。在第一个应用程序是你当前的应用程序,没有改变,只服务于所有http域。在
第二个应用程序是现有应用程序的克隆,在
app.yaml
中添加了secure: always
。它将服务于所有的https域。在你需要从你的第一个应用程序的域映射中删除https域,并将它们放在第二个应用程序的域映射中。在
您可能还需要将与纯https域相关的任何数据存储数据复制/移动到第二个应用程序,因为尽管应用程序不能共享同一个数据存储(这两个应用程序之间可能共享云存储)。不是百分之百确定,我还没有尝试在不同的应用程序之间共享数据。在
相关问题 更多 >
编程相关推荐