2012-03-14 62 views
3

是否可以根据请求的主机名来更改apache配置使用的wsgi脚本?我想建立一个系统,在其中可以部署各种wsgi应用程序,然后通过简单地使用子域自动映射到正确的wsgi脚本来运行。我主要试图避免每次部署另一个应用程序时都必须更改conf文件。根据Apache中的子域名选择不同的wsgi脚本?

<VirtualHost *:80> 
    ServerName mysite.us 
    ServerAlias *.mysite.us 

    WSGIDaemonProcess mysite 
    #can I use a different value here based on the domain? 
    WSGIScriptAlias//home/ubuntu/mysite/wsgi.py 

    <Directory /home/ubuntu/mysite> 
     WSGIProcessGroup mysite 
     WSGIApplicationGroup %{GLOBAL} 
     Order deny,allow 
     Allow from all 
    </Directory> 
</VirtualHost> 

回答

1

您是否尝试过设置从请求uri中捕获的环境变量并将WSGIScriptAlias路径分配给该var?

喜欢的东西:

SetEnvIf HTTP_HOST "^(\w+).domain.tld" subdomain=$1 

您可能需要巧妙了一点你的目的,你需要的Apache2捕获正则表达式的值与SetEnvIf之后。

http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html#setenvif

那么你应该能够使用:

WSGIScriptAlias//home/ubuntu/mysite/%{subdomain}.wsgi.py