我正在创建一个将由多个域使用的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
但是,如果添加更多域名,似乎会变得混乱。这将需要为将要添加的每个域运行新的“manage runfastcgi”进程。有没有办法以这种方式支持多个站点而不为每个站点运行单独的进程?
使用Django托管多个域名有什么经验?
非常感谢任何建议。谢谢你的阅读。
乔
答案 0 :(得分:2)
如果您要运行许多域,则每个域一个进程可能会非常昂贵。网站框架最初是在考虑另一个用例的情况下制作的:能够在多个新闻网站上轻松创建“重复”内容。当尝试将站点框架用于其他用途时,您会遇到一些困难。
一种可能性是将域处理移动到中间件并让django处理多域部分。这不是微不足道的,特别是如果你必须调整应用程序以识别域名,还有urlconfs,模板等...快速谷歌搜索出现了:
http://djangosnippets.org/snippets/1119/
可以帮助作为起点。