проблема с использованием WSGIApplicationGroup %{GLOBAL} в конфигурации apache

я использую django с apache и mod_wsgi. Я сталкиваюсь с проблемой, когда использую WSGIApplicationGroup %{GLOBAL} в файле конфигурации apache (.conf). я не знаю, правильно ли я использую эту директиву или мне нужно использовать ее по-другому, проблема в том, что мне нужно было добавить эту директиву, чтобы исправить проблему для xapian, как описано в этом билете (http://trac.xapian.org/ticket/185) после этого поиск заработал, но все содержимое моих сайтов перепуталось вверх, что означает, что контент site1 появляется на site2. Когда я удалил 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>

кто-нибудь сталкивался с этой проблемой, есть предложения

Благодарность


person watad    schedule 04.08.2010    source источник


Ответы (1)


Реализация Django предотвращает запуск нескольких экземпляров Django в одном интерпретаторе (группе приложений). Таким образом, если вы запускаете несколько сайтов Django на одном сервере Apache и должны установить для WSGIApplicationGroup значение %{GLOBAL}, вы ДОЛЖНЫ использовать режим демона и делегировать каждый сайт Django отдельной группе процессов демона. Режим демона предпочтительнее в любом случае.

Убедитесь, что вы прочитали:

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

Последняя часть объясняет, почему режим демона хорош тем, что упрощает перезагрузку кода.

person Graham Dumpleton    schedule 04.08.2010
comment
спасибо за ссылки, использование режима демона решило проблему, но я хотел бы получить совет о параметрах для процессов, потоков, как мне определить эти числа - person watad; 08.08.2010
comment
Если ваш код потокобезопасен, используйте значения по умолчанию, т.е. Не указывайте параметры процессов или потоков и по умолчанию используйте один процесс с 15 потоками. Обычно этого достаточно для большинства людей. Другими словами, не пытайтесь преждевременно оптимизировать вещи. Если вы начнете замечать проблемы с ответом определенных сайтов, возможно, потребуется настроить только эту группу процессов демона. - person Graham Dumpleton; 09.08.2010