2

我正在创建一个将被多个域使用的 Django 项目,并且功能会因域而略有不同。我正在寻找有关正确设置方法的建议。

一旦处理达到执行 Django 代码的 程度,站点框架似乎很适合进行一些自定义。但我试图确定在我们达到那个点之前应该设置什么(与 nginx、flup、fastcgi、config 相关)。

这是我目前的理解:

似乎多个 Django 设置文件是合适的,每个文件都有不同的 SITE_ID。然后将在 nginx 配置中设置两个虚拟主机,它们将指向两个不同的套接字。然后将使用两个“manage.py runfastcgi”进程来监听这两个不同的套接字,每个进程将引用不同的 settings.py

./manage.py --settings=settings.site1.py runfcgi method=prefork socket=/home/user/mysite1.sock pidfile=django1.pid
./manage.py --settings=settings.site2.py runfcgi method=prefork socket=/home/user/mysite2.sock pidfile=django2.pid

但是,如果您添加更多域,这似乎会变得混乱。它需要为每个要添加的域运行一个新的“管理 runfastcgi”进程。有没有办法以这种方式支持多个站点,而无需为每个站点运行单独的进程?

您使用 Django 托管多个域的经验是什么?

非常感谢任何建议。感谢您的阅读。

4

1 回答 1

2

如果您要运行许多域,则每个域一个进程可能会变得非常昂贵。网站框架最初是为另一个用例而设计的:能够在多个新闻网站上轻松创建“重复”内容。在尝试将站点框架用于其他用途时,您会遇到一些困难。

一种可能性是将域处理移动到中间件并让 django 处理多域部分。不过,这并不是微不足道的,特别是如果您必须调整应用程序以了解域,以及 urlconfs、模板等......出现了一个快速的谷歌搜索:

http://djangosnippets.org/snippets/1119/

作为起点可能会有所帮助。

于 2011-02-23T17:24:29.643 回答