2012-03-13 51 views
0

我有一個使用網站框架的django應用程序,需要部署在一個單一的apache虛擬主機。我用PythonInterpreter使用mod-python,它工作正常。但mod-python已被棄用,我想遷移到wsgi。但我可以弄清楚如何使用wsgi配置這個場景。誰能幫我?我想對每個網站使用WSGIScriptAlias不起作用,因爲它運行在相同的python解釋器上。django + wsgi +多個網站

任何人都可以幫助我嗎?

+0

我發現這個指令:WSGIApplicationGroup(http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIApplicationGroup)。我正在弄清楚它是否解決了這個問題。 – msbrogli 2012-03-13 23:25:58

回答

2

WSGIApplicationGroup的默認值爲%{RESOURCE},它擴展爲包含ServerName的值和應用程序安裝點。因此,默認情況下,每個不同的虛擬主機都將在獨立的子解釋器中。

這意味着如果您有多個VirtualHost定義與不同的ServerName設置,那麼它們將是不同的。

一般來說,最好爲每個站點創建一個獨立的守護程序進程組,並將每個進程委派給一組不同的進程。這是使用WSGIDaemonProcess和WSGIProcessGroup指令完成的。

當每個站點位於單獨的守護進程組中時,通常最好將WSGIApplicationGroup設置爲%{GLOBAL},以便在進程中使用主解釋器,這樣可以避免一些第三方C擴展模塊出現的問題,以便在分譯員中工作。

+0

但WSGIDaemonProcess的上下文是虛擬主機。我怎樣才能做到這一點只使用一個虛擬主機?我的網站是:http:// /site1 /和http:// /site2 /。 – msbrogli 2012-03-14 00:47:17

+0

它不限於VirtualHost。它可以在VirtualHost之外,然後每個VirtualHost都有一個引用它的WSGIProcessGroup。正如我所說的,你最好每個站點有一個守護進程組。 – 2012-03-14 05:13:23

+0

工作得很好!謝謝! =] – msbrogli 2012-03-16 01:20:27