代码之家  ›  专栏  ›  技术社区  ›  helloandre

Django部署为SaaS(Basecamp样式)

  •  1
  • helloandre  · 技术社区  · 15 年前

    我几乎完成了一个django项目的开发(有几个可插入的应用程序)。

    我想把这个项目作为saas(类似于basecamp)来提供。

    即:project1.mysaas.com、project2.mysaas.com等

    我希望你能给我指路。

    我想到的是:

    • 1使用站点定义特定于站点的设置.py
    • 2一个中间件,用于检测请求,然后相应地设置设置
    • 3为每个站点创建django项目(接受可插入的应用程序)

    谢谢。

    顺便说一下,我是个新手。

    1 回复  |  直到 15 年前
        1
  •  3
  •   Van Gale    15 年前

    你的要求一点也不清楚,但我假设你没有做任何棘手的事情,也假设你的“项目1”,“项目2”是客户名称,不需要任何特殊的品牌。

    首先,关于你的想法:

    1. 你可能不需要使用网站框架,除非每个网站都有不同的品牌。站点框架很好地完成了它的设计任务,即呈现一组公共数据的不同视图。

    2. 这是可行的,但可能不是海事组织的最佳做法。

    3. 这是无法控制的。

    现在,这是一个很难的话题,因为问题太多了。开始阅读的好地方是 High Scalability Blog 与你特别相关的是 37signals Architecture .

    最后,下面是我在一个小型SaaS应用程序中所做的工作(不需要极端的可伸缩性):

    • 使用站点框架(因为用户页面将由合作伙伴/分销商标记,并且每个合作伙伴都有一个唯一的登录页面)

    • 使用mod_wsgi可以最小化所有django实例的资源使用。

    • 与中间件不同,我在每个标识用户公司的视图的顶部放置了一个公共代码。我需要这个视图中的逻辑,这就是为什么我不认为它在中间件中有用的原因。

    推荐文章