【问题标题】:Multiple domains with shared codebase but different data using Django具有共享代码库但使用 Django 的不同数据的多个域
【发布时间】:2012-11-12 16:04:56
【问题描述】:

最好通过查看 wordpress.com 的工作原理来解释我想要做什么:

  • 每个博客都分配到一个新的子域,但用户也可以使用自己的域。可以使用简单的 Web 界面分配自定义域
  • 每个博客都有自己的内容、主题等
  • 所有博客共享相同的代码库

在 Django 中可以做同样的事情吗?

我对实现子域不感兴趣,但我想要其他功能。

对我来说,找到一种无需在配置文件中硬编码即可正常工作的方法非常重要。域分配的动态特性使得管理大量域成为可能。如果可以针对数据库表进行域匹配,那将是理想的。

我使用 nginx 和 uwsgi。

【问题讨论】:

    标签: django url


    【解决方案1】:

    是的,但与开箱即用的 Wordpress 安装相比,它需要在 Django 中进行更多工作,但会为您提供更大的灵活性。

    您可能想看看 django sites。但是我认为它无法完成您想做的所有事情。

    一个更模块化的系统是让您编写一个脚本,该脚本在调用时将引导一个新的 db 模式,新的 deverelenv,将所有必要的东西安装到其中,将新站点的站点配置添加到 nginx/apache,然后重新启动nginx/apache。代码可以来自相同的目录,除了因为每个站点都将在它自己的 virtualenv 上运行,它会更加安全、可靠和容错。但是,正如您所见,这需要一些工作,但我根据您的要求,这是最灵活的方式。

    【讨论】:

    • 这种方式有两个问题: 1、每次添加新域都要重启nginx。这将导致所有用户(不仅仅是正在编辑其域的网站)的连接丢失和停机。对于很多域,这会导致一个严重的问题。 2. 如果我想更改我的代码库,我必须更改每个代码实例,这意味着每个域一次。这种方法似乎不是最优的。
    • 完全同意。然而,它确实提供了一个良好的基础架构开始能够很好地扩展,因为您可以运行结构脚本而不是脚本......但是此时,您需要计算机集群并且每个网站都必须在其上运行至少两个盒子不会有任何停机时间。
    • 我实际上希望在不久的将来做这样的事情,所以我现在想到的最快和最简单的方法就是这种简单的方法。如果您发现任何更优雅的东西,请分享。
    猜你喜欢
    • 2012-07-07
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 2020-03-14
    相关资源
    最近更新 更多