
Soy nuevo en Django/Python/mod_wsgi y me preguntaba si podría optimizar este archivo para reducir el uso de memoria:
ServerRoot "/home/<foo>/webapps/django_wsgi/apache2"
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule wsgi_module modules/mod_wsgi.so
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog /home/<foo>/logs/user/access_django_wsgi.log combined
ErrorLog /home/<foo>/logs/user/error_django_wsgi.log
KeepAlive Off
Listen 12345
MaxSpareThreads 3
MinSpareThreads 1
MaxClients 5
MaxRequestsPerChild 300
ServerLimit 4
HostnameLookups Off
SetEnvIf X-Forwarded-SSL on HTTPS=1
ThreadsPerChild 5
WSGIDaemonProcess django_wsgi processes=5 python-path=/home/<foo>/webapps/django_wsgi:/home/<foo>/webapps/django_wsgi/lib/python2.6 threads=1
WSGIPythonPath /home/<foo>/webapps/django_wsgi:/home/<foo>/webapps/django_wsgi/lib/python2.6
WSGIScriptAlias /auctions /home/<foo>/webapps/django_wsgi/auctions.wsgi
WSGIScriptAlias /achievers /home/<foo>/webapps/django_wsgi/achievers.wsgi
Respuesta1
Aunque haya definido la directiva WSGIDaemonProcess para crear un grupo de procesos de demonio separado, en realidad no la está utilizando. Si su intención es utilizar el modo demonio, debe eliminar WSGIPythonPath y agregar en su lugar:
WSGIProcessGroup django_wsgi
Además, si va a utilizar el modo demonio y lo único que ocurre en los procesos principales de Apache es servir archivos estáticos, puede volver a cambiar ThreadsPerChild a:
MaxRequestsPerChild 0
ya que no es necesario reciclar los procesos secundarios del servidor Apache periódicamente.
Por cierto, es una mala práctica desechar la configuración predeterminada completa de Apache y luego agregar solo lo que crea necesario. Esto se debe a que está desechando toda la seguridad de acceso predeterminada, lo que significa que técnicamente todos los archivos de su sistema pueden entregarse si existe una asignación de URL que permita acceder al archivo.