【问题标题】:Recommended way to setup Django Fast CGI configuration with multiple domains使用多个域设置 Django Fast CGI 配置的推荐方法
【发布时间】:2011-06-12 15:08:56
【问题描述】:

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

sites 框架似乎很适合在处理达到执行 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 托管多个域方面有何经验?

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

【问题讨论】:

  • 一位朋友转发了我这个链接。虽然它不能完全回答这个问题,但它似乎提供了一些与此相关的有用信息。 trojanbadger.com/2008/12/9/…

标签: django settings nginx fastcgi flup


【解决方案1】:

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

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

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

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

【讨论】:

  • 谢谢 Ashwoods,看来这种方法可能会奏效。正如您所提到的,可能需要一些工作才能让应用程序具有域感知能力,但可能有一些方法可以帮助限制这一点。谢谢你的建议。 - 乔
猜你喜欢
  • 1970-01-01
  • 2021-06-26
  • 1970-01-01
  • 2019-01-15
  • 1970-01-01
  • 2016-07-14
  • 2012-05-05
  • 2018-10-14
  • 1970-01-01
相关资源
最近更新 更多