使用相同的代码服务2个django站点

时间:2011-05-05 13:47:37

标签: django apache wsgi

我正在使用apache配置使用apache和wsgi服务django站点,如下所示:

  Alias /media/ /var/www/media/
  Alias /files/ /var/www/files/
  WSGIDaemonProcess fc processes=5 threads=5 display-name=%{GLOBAL}
  WSGIProcessGroup fc
  WSGIScriptAlias / /home/path/to/django.wsgi

该应用程序在主机的根目录中提供。我现在要改变这一点,以便我可以在http://host/app1和另一个,在http://host/app2

处使用不同的django设置进行更改

如何更改配置才能执行此操作?

由于

2 个答案:

答案 0 :(得分:1)

每个项目都需要一组WSGI*指令。 WSGIScriptAlias的第二个参数告诉Apache项目在树中的位置;在将URL传递给Django的URL解析器之前,WSGI会删除此前缀。

例如:

WSGIDaemonProcess app1 threads=15
WSGIScriptAlias /app1 /var/www/django_project1/django.wsgi
<Location /app1>
WSGIProcessGroup app1
</Location>

WSGIDaemonProcess app2 threads=15
WSGIScriptAlias /app2 /var/www/django_project2/django.wsgi
<Location /app2>
WSGIProcessGroup app2
</Location>

我没有试过优化这个;可能有更好的方法。但这应该让你跑步。

答案 1 :(得分:0)

您可以尝试使用第二个settings.py创建其他文件夹,并创建指向您的应用,区域设置,静态,模板,urls.py等的符号链接。

我有多个项目使用相同的应用程序,所以我把它们放在我添加到python路径的独立文件夹中。我也为这两个站点使用相同的数据库,但我有不同的SITE_ID所以我可以指定wchich网站我想要我的内容。这样我可以使用具有相同内容的不同模板,样式和图像的完全不同的网站。如果两个站点上的JS脚本相同,我会创建一个符号链接。