
Ich bin neu bei Django/Python/mod_wsgi und habe mich gefragt, ob ich diese Datei optimieren könnte, um den Speicherverbrauch zu reduzieren:
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
Antwort1
Obwohl Sie die Direktive WSGIDaemonProcess definiert haben, um eine separate Daemon-Prozessgruppe zu erstellen, verwenden Sie sie eigentlich nicht. Wenn Sie den Daemon-Modus verwenden möchten, sollten Sie WSGIPythonPath löschen und stattdessen Folgendes hinzufügen:
WSGIProcessGroup django_wsgi
Wenn Sie den Daemon-Modus verwenden und in den Hauptprozessen von Apache nur das Bereitstellen statischer Dateien stattfindet, können Sie „ThreadsPerChild“ wieder wie folgt ändern:
MaxRequestsPerChild 0
da es nicht notwendig ist, die untergeordneten Prozesse des Apache-Servers regelmäßig wiederzuverwenden.
Übrigens ist es keine gute Praxis, die komplette Apache-Standardkonfiguration wegzuwerfen und dann nur das hinzuzufügen, was Sie für notwendig halten. Das liegt daran, dass Sie die gesamte Standardzugriffssicherheit wegwerfen, was bedeutet, dass technisch gesehen jede Datei auf Ihrem System bereitgestellt werden kann, wenn eine URL-Zuordnung vorhanden ist, die den Zugriff auf die Datei ermöglicht.