帮助在单个子域下设置多个django站点

时间:2011-07-21 17:05:44

标签: django apache2 fastcgi

在同一个子域下,我需要设置几个独立的站点,每个站点运行django,这些站点是完全分开的。每个站点都应该在它自己的子目录中,并且这些子目录必须受密码保护。

例如:

subdomain.example.com/site1
subdomain.example.com/site2
我正在使用apache2并为子域提供虚拟服务器条目。 django使用FastCGI运行。

基本上,我不知道如何设置它。我将什么放入我的< VirtualHost>子域的条目?通常,对于子域下的单个django站点,我会将WSGIScriptAlias指向应该执行的python脚本,但是我该怎么做多个站点? 请帮忙 谢谢 康斯坦丁

2 个答案:

答案 0 :(得分:0)

这些不是独立的虚拟主机。

他们是独立的"地点" (或"目录")在虚拟主机中。

你会做一些类似下面的事情。

  ServerName example.com
  DocumentRoot /opt/app/site1/public_html
  Alias /media/site1 /opt/app/site1/media
  DocumentRoot /opt/app/site2/public_html
  Alias /media/site2 /opt/app/site2/media

  RewriteEngine On
  RewriteRule ^/(media/site1.*)$ /$1 [QSA,L,PT]
  RewriteRule ^/(media/site2.*)$ /$1 [QSA,L,PT]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^/site1(.*)$ /mysite1.fcgi/$1 [QSA,L]
  RewriteRule ^/site1(.*)$ /mysite2.fcgi/$1 [QSA,L]

[这是未经测试的,因为我们使用mod_wsgi。]

答案 1 :(得分:0)

这是我的配置:

<VirtualHost *:12665>
    ServerName subdomain.example.com
    DocumentRoot /path
    WSGIScriptAliasMatch ^/([^/]+) /sites/$1/httpd/django.wsgi
    <DirectoryMatch ^/sites/[^/]+/httpd>
        Order deny,allow
        Allow from all
    </DirectoryMatch>
</VirtualHost>