Kann ich diese mod_wsgi/Apache-Datei besser optimieren?

Kann ich diese mod_wsgi/Apache-Datei besser optimieren?

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.

verwandte Informationen