是否可以在同一个域下托管多个django项目?

时间:2013-11-20 21:12:53

标签: django deployment virtualenv django-cms

我需要在同一个域下将不同的Django项目与Django CMS放在一起,例如:

  • example.com/2012 /
  • example.com/2014 /

通常我会为每个域/项目使用virtualenv和mod_wsgi。我需要不同的数据库,媒体文件和Django版本。

将项目放在不同的子域下不是一种选择。

有可能吗?我该如何设置服务器?有什么警告我应该知道吗?

1 个答案:

答案 0 :(得分:2)

您可以配置Apache / mod_wsgi来重写URL并将它们定向到不同的WSGI文件。这允许您为每个站点设置完全不同的virtualenvs,数据库和Django版本。例如:

WSGIScriptAlias /2012/ /location/to/my/files/website1.wsgi
WSGIScriptAlias /2014/ /location/to/my/files/website2.wsgi

然后,这些WSGI文件中的每一个都可以使用自己的Django版本和设置将执行指向特定virtualenv中的文件。

如果您可以放宽需要不同Django版本的约束,那么您可以使用django.contrib.sites框架。这允许您为每个“网站”定义多个Site个对象。然后,您可以在运行一个Django安装时将内容与每个站点相关联。