Прежде всего, мой сайт работает и работает нормально.Здесь нет критических проблем.
Я хочу понять кое-что.
Начну с обзора моей системы.
Это питание от djangoсайт, расположенный на CentOS 5.3 VPS с 256 МБ ОЗУ, под apache с mod_wsgi.
Приложение django работает как процесс Daemon с 1 потоками.
Что мне нужно в моем приложении: 1.Инициализировать ведение журнала (в настоящее время оно работает, но я каждый раз получаю двойное ведение журнала) 2. Начать работу с потоками демона, чтобы выполнить некоторую фоновую работу
Теперь я прочитал и реализовал решение, предлагаемое в http://blog.dscpl.com.au/2010/03/improved-wsgi-script-for-use-with.htmlно это не очень помогло.
В основном мне пришлось вручную отключить рабочий MPM (работает только prefork MPM) и настроить процесс-демон с одним процессом и одним потоком (по некоторым причинам он не работаетс любой другой комбинацией).
Но странно то, что сайт работает и создает 2 фоновых потока.1. Как это происходит?2. Означают ли мои настройки, что одновременные запросы не будут обрабатываться на моем сайте?
Вот некоторые настройки с моего сайта
httpd.conf
WSGIScriptAlias / /var/www/NiceHouse/trunk/apache/django.wsgi
WSGISocketPrefix run/wsgi
<VirtualHost *:80>
WSGIDaemonProcess site-1 user=**** group=**** threads=1
WSGIProcessGroup site-1
ServerName *****
ServerAlias *****
ServerAdmin *****
#DocumentRoot /usr/local/www/documents
#Alias /robots.txt /usr/local/www/documents/robots.txt
#Alias /favicon.ico /usr/local/www/documents/favicon.ico
Alias /media/ /usr/lib/python2.4/site-packages/django/contrib/admin/media/
Alias /site_media/ /var/www/NiceHouse/trunk/media/
Alias /phpmyadmin /var/www/phpmyadmin/
#<Directory /usr/local/www/documents>
#Order allow,deny
#Allow from all
#</Directory>
WSGIScriptAlias / /var/www/NiceHouse/trunk/apache/django.wsgi
#<Directory /usr/local/www/wsgi-scripts>
#Order allow,deny
#Allow from all
#</Directory>
</VirtualHost>
swtune.conf
<IfModule prefork.c>
StartServers 1
MinSpareServers 1
MaxSpareServers 3
ServerLimit 50
MaxClients 50
MaxRequestsPerChild 1000
</IfModule>
django.wsgi
import sys
import os
os.environ['PYTHON_EGG_CACHE']='/tmp/hoge'
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
sys.path.insert(0,'/var/www/NiceHouse/trunk')
import settings
import django.core.management
django.core.management.setup_environ(settings)
utility = django.core.management.ManagementUtility()
command = utility.fetch_command('runserver')
command.validate()
import django.conf
import django.utils
django.utils.translation.activate(django.conf.settings.LANGUAGE_CODE)
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Буду признателен за любую помощь
Спасибо, Elad