【问题标题】:Serve different app on particular subdomain in multi-tenant system在多租户系统中的特定子域上提供不同的应用程序
【发布时间】:2013-08-30 14:17:06
【问题描述】:

我已经构建了一个在 App Engine 中托管的烧瓶应用程序,使用了通配符子域映射以及 App Engine 提供的命名空间支持,以便可以从任何子域提供应用程序。一切正常。

现在,我想创建一个子域,比如 admin.domain.com 来处理一些与管理相关的活动。所有其他子域都指向正常的应用程序。

当未注册的用户访问company.domain.com时,应该重定向到他注册的admin.domain.com,完成后他会自动回到company.domain.com。

如何将管理应用映射到特定的子域?无论如何使用 Flask 或 App Engine 来做这件事吗?如果不可能,如何处理这种情况?

这是我第一次构建这样的应用程序。

谢谢..

【问题讨论】:

    标签: google-app-engine flask multi-tenant


    【解决方案1】:

    我不确定您使用“应用程序”这个词时的语义。在严格的 GAE 意义上,应用程序是完全独立的,每个应用程序都有自己的计费和数据存储等。

    如果您严格希望将管理应用程序作为单独的应用程序,则不能使用通配符子域映射。您必须使用用于映射域的 App Engine 管理设置手动映射每个子域。您可以将 admin.domain.com 映射到您的管理应用程序,并手动将您的其他子域映射到普通应用程序。

    如果您只是在谈论在同一个应用程序中运行的单独管理功能,并且您没有严格设置使用 admin.domain.com,那么最好的方法可能是使用新模块功能并创建您的 ' admin' 作为一个单独的模块并使用 dispatch.yaml 路由到它: https://developers.google.com/appengine/docs/python/modules/routing

    否则,Flask/GAE 并没有为此提供任何内置机制。你必须做一些混乱的事情,比如检查每个请求处理程序中的 URL,如果它是管理员,则采取适当的行动。

    【讨论】:

    • 感谢您的回复。是的..我想避免在每个请求中检查 url,寻找一些内置机制。我想像你在第二段中提到的那样做。我不知道新的模块功能,将研究它。
    • 实际上,使用 dispatch.yaml 您应该能够将 admin.domain.com 路由到您的管理模块,因此这可能是您的最佳选择。
    • 我正在经历它,会尝试的。谢谢。
    猜你喜欢
    • 2016-05-31
    • 2019-04-05
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    相关资源
    最近更新 更多