帮助在单个子域下设置多个django站点
在同一子域下,我需要设置几个独立的站点,每个站点运行django,这些站点是完全独立的。每个站点都应该位于自己的子目录中,并且这些子目录必须有密码保护 例如:帮助在单个子域下设置多个django站点,django,apache2,fastcgi,Django,Apache2,Fastcgi,在同一子域下,我需要设置几个独立的站点,每个站点运行django,这些站点是完全独立的。每个站点都应该位于自己的子目录中,并且这些子目录必须有密码保护 例如: subdomain.example.com/site1 subdomain.example.com/site2 我正在使用apache2,并且有一个用于子域的虚拟服务器条目。django使用FastCGI运行 基本上,我不知道如何设置它。我应该在子域的条目中输入什么?通常,对于子域下的单个django站点,我会将WSGIScriptA
subdomain.example.com/site1
subdomain.example.com/site2
我正在使用apache2,并且有一个用于子域的虚拟服务器条目。django使用FastCGI运行
基本上,我不知道如何设置它。我应该在子域的条目中输入什么?通常,对于子域下的单个django站点,我会将WSGIScriptAlias放在指向应该执行的python脚本的位置,但是对于多个站点,我该怎么做呢?
请帮忙
谢谢
konstantin这些不是独立的虚拟主机 它们是虚拟主机中单独的“位置”(或“目录”) 您将执行以下类似的操作
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进行此操作。]以下是我的配置:
ServerName subdomain.example.com
文档根/路径
WSGIScriptAliasMatch^/([^/]+)/sites/$1/httpd/django.wsgi
命令拒绝,允许
通融
警告。如果可以避免,则不应使用WSGIScriptAliasMatch。不正确使用它将导致脚本名称设置不正确,从而导致应用程序中反向URL的构造错误。所以,如果你沿着这条路走,要小心。
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]
<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>