이 mod_wsgi / apache 파일을 더 잘 최적화할 수 있나요?

이 mod_wsgi / apache 파일을 더 잘 최적화할 수 있나요?

저는 Django/Python/mod_wsgi를 처음 접하는데, 메모리 사용량을 줄이기 위해 이 파일을 최적화할 수 있는지 궁금합니다.

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

답변1

별도의 데몬 프로세스 그룹을 생성하기 위해 WSGIDaemonProcess 지시문을 정의했지만 실제로는 이를 사용하지 않습니다. 데몬 모드를 사용하려는 경우 WSGIPythonPath를 삭제하고 대신 다음을 추가해야 합니다.

WSGIProcessGroup django_wsgi

또한 데몬 모드를 사용하려고 하는데 기본 Apache 프로세스에서 정적 파일을 제공하는 일만 발생하는 경우 ThreadsPerChild를 다음과 같이 다시 변경할 수 있습니다.

MaxRequestsPerChild 0

Apache 서버 하위 프로세스를 주기적으로 재활용할 필요가 없기 때문입니다.

그런데, 전체 기본 Apache 구성을 버리고 필요하다고 생각되는 것만 추가하는 것은 나쁜 습관입니다. 이는 기본 액세스 보안을 모두 버리기 때문입니다. 즉, 파일에 액세스할 수 있는 URL 매핑이 있는 경우 기술적으로 시스템의 모든 파일을 제공할 수 있기 때문입니다.

관련 정보