使用mod_wsgi进行动态群发托管

时间:2010-03-11 16:17:40

标签: python django apache2 mod-wsgi

我正在尝试使用mod_wsgi为动态群发托管配置apache服务器。每个用户都有自己的/ mnt / data / www / domains / [user_name]中的python应用程序实例,并且会有一个vhost.map告诉我哪个域映射到每个用户的目录(该目录将具有相同的名称)作为用户)。我不知道的是如何编写WSGIScriptAliasMatch行,以便它也从vhost.map文件中获取路径。 我想做的是这样的事情:我可以在我的服务器上有不同的域名,如www.virgilbalibanu.com或virgil.balibanu.com和flaviu.balibanu.com,其中每个域名都与另一个用户相似,用户名没有与域名的必要连接。我想这样做是因为用户,我知道他会收到像virgil.mydomain.com这样的东西,但如果他有自己的域名,他可以稍后更改它,例如www.virgilbalibanu.ro,这样我会只需要在vhost.map文件中隐藏该行 到目前为止,我有这样的事情:

Alias /media/ /mnt/data/www/iitcms/media/
#all media is taken from here

RewriteEngine on

RewriteMap lowercase int:tolower

# define the map file
RewriteMap vhost txt:/mnt/data/www/domains/vhost.map

#this does not work either, can;t say why atm
RewriteCond %{REQUEST_URI} ^/uploads/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/media/uploads/$1

#---> this I have no ideea how i could do
WSGIScriptAliasMatch ^([^/]+) /mnt/data/www/domains/$1/apache/django.wsgi

<Directory "/mnt/data/www/domains">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

<DirectoryMatch ^/mnt/data/www/domains/([^/]+)/apache>
  AllowOverride None 
  Options FollowSymLinks ExecCGI
  Order deny,allow
  Allow from all
</DirectoryMatch>

<Directory /mnt/data/www/iitcms/media>
  AllowOverride None
  Options Indexes FollowSymLinks MultiViews 
  Order allow,deny 
  Allow from all 
</Directory>

<DirectoryMatch ^/mnt/data/www/domains/([^/]+)/media/uploads>
  AllowOverride None
  Options Indexes FollowSymLinks MultiViews 
  Order allow,deny 
  Allow from all 
</DirectoryMatch>

我知道我使用mod_rewrite所做的部分不起作用,不能说真的为什么不行,但到目前为止这并不重要,我很好奇我怎么能写WSGIScriptAliasMatch行来实现我的目标。 我将非常感谢任何帮助,或任何其他与我如何处理这个问题有关的想法。如果我设法让每个站点都以wsgi守护进程模式运行,那就太棒了。你不是那么重要。

谢谢, 维吉尔

1 个答案:

答案 0 :(得分:1)