2012-03-14 31 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