2010-08-04 83 views
0

使用django與apache和mod_wsgi 我在使用apache配置文件(.conf)中的WSGIApplicationGroup%{GLOBAL}時遇到問題。我不知道我是否正確使用這個指令,或者我需要以另一種方式使用它,問題是我需要添加此指令來解決此票證(http://trac.xapian.org/ticket/185)中描述的xapian問題,之後開始搜索工作,但所有我的網站內容混合起來,這意味着site1內容出現在site2.when我刪除WSGIApplicationGroup%{GLOBAL},網站再次正常呈現,但搜索停止工作。在apache配置中使用WSGIApplicationGroup%{GLOBAL}

這裏是我的.conf文件內容:

NameVirtualHost my_ip_address:80 
WSGIApplicationGroup %{GLOBAL} 
<VirtualHost my_ip_address:80> 
ServerName www.site1.com 
ServerAlias site1 

WSGIScriptAlias/"/home/sa/www/site1/apache/django.wsgi" 
<Directory "/home/sa/www/site1/apache"> 
    Allow from all 
</Directory> 

Alias /site_media/ "/home/sa/www/site1/media/" 
<Directory "/home/sa/www/site1/media/"> 
    Order allow,deny 
    Options Indexes FollowSymLinks 
    Allow from all 
    IndexOptions FancyIndexing 
</Directory> 


</VirtualHost> 

WSGIApplicationGroup %{GLOBAL} 

<VirtualHost my_ip_address:80> 
ServerName www.site2.com 
ServerAlias site2 

WSGIScriptAlias/"/home/sa/www/site2/apache/django.wsgi" 
<Directory "/home/sa/www/site2/apache"> 
    Allow from all 
</Directory> 

Alias /site_media/ "/home/sa/www/site2/media/" 
<Directory "/home/sa/www/site2/media/"> 
    Order allow,deny 
    Options Indexes FollowSymLinks 
    Allow from all 
    IndexOptions FancyIndexing 
</Directory> 

Alias /media/ "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/" 
<Directory "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/"> 
    Order allow,deny 
    Options Indexes FollowSymLinks 
    Allow from all 
    IndexOptions FancyIndexing 
</Directory> 

</VirtualHost> 



WSGIApplicationGroup %{GLOBAL} 

< VirtualHost my_ip_address:80 > 
ServerName www.site3.com 
ServerAlias site3 

WSGIScriptAlias/"/home/sa/www/site3/apache/django.wsgi" 
<Directory "/home/sa/www/site3/apache"> 
    Allow from all 
</Directory> 

Alias /site_media/ "/home/sa/www/site3/media/" 
<Directory "/home/sa/www/site3/media/"> 
    Order allow,deny 
    Options Indexes FollowSymLinks 
    Allow from all 
    IndexOptions FancyIndexing 
</Directory> 

Alias /media/ "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/" 
<Directory "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/"> 
    Order allow,deny 
    Options Indexes FollowSymLinks 
    Allow from all 
    IndexOptions FancyIndexing 
</Directory> 

</VirtualHost> 


WSGIApplicationGroup %{GLOBAL} 

<VirtualHost my_ip_address:80> 

ServerName www.site4.com 
ServerAlias site4 

WSGIScriptAlias/"/home/sa/www/site4/apache/django.wsgi" 
<Directory "/home/sa/www/site4/apache"> 
    Allow from all 
</Directory> 

Alias /site_media/ "/home/sa/www/site4/media/" 
<Directory "/home/sa/www/site4/media/"> 
    Order allow,deny 
    Options Indexes FollowSymLinks 
    Allow from all 
    IndexOptions FancyIndexing 
</Directory> 

Alias /media/ "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/" 
<Directory "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/"> 
    Order allow,deny 
    Options Indexes FollowSymLinks 
    Allow from all 
    IndexOptions FancyIndexing 
</Directory> 

</VirtualHost> 


WSGIApplicationGroup %{GLOBAL} 

<VirtualHost my_ip_address:80> 
ServerName www.site5.com 
ServerAlias site5 

WSGIScriptAlias/"/home/sa/www/site5/apache/django.wsgi" 
<Directory "/home/sa/www/site5/apache"> 
    Allow from all 
</Directory> 

Alias /site_media/ "/home/sa/www/site5/media/" 
<Directory "/home/sa/www/site5/media/"> 
    Order allow,deny 
    Options Indexes FollowSymLinks 
    Allow from all 
    IndexOptions FancyIndexing 
</Directory> 

Alias /media/ "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/" 
<Directory "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/"> 
    Order allow,deny 
    Options Indexes FollowSymLinks 
    Allow from all 
    IndexOptions FancyIndexing 
</Directory> 

</VirtualHost> 

有任何人面對這個問題 任何建議

感謝

回答

8

Django的實現防止同一解釋運行多個Django的實例(應用程序組) 。因此,如果在同一個Apache服務器上運行多個Django站點,並且必須將WSGIApplicationGroup設置爲%{GLOBAL},那麼您必須使用守護進程模式並將每個Django站點委託給單獨的守護進程組。無論如何,守護進程模式是首選。

確保您閱讀:

http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

後者解釋部分原因daemon模式是好的,只要使代碼更容易重裝。

+0

感謝您的鏈接,使用守護進程模式解決了問題 但我想要一個關於進程參數的建議,線程如何決定這些數字 – watad 2010-08-08 11:43:13

+1

如果您的代碼是線程安全的,請使用默認值,即。不要指定進程或線程選項,並讓它默認爲具有15個線程的單個進程。這對大多數人來說通常是足夠的。換句話說,不要試圖過早地優化事情。如果您開始發現特定網站的響應問題,那麼可能需要針對該守護進程組進行調整。 – 2010-08-09 01:16:01