Python mod_wsgi启动时速度过慢?

Python mod_wsgi启动时速度过慢?,python,django,apache2,mod-wsgi,Python,Django,Apache2,Mod Wsgi,我正在开发一个django网站,它在生产中使用mod_wsgi——几乎没有任何访问者,所以每当我访问它时,mod wsgi似乎会启动并打开python进程——完全加载大约需要1-2分钟 有什么我可以做的,不让它在初始启动时变慢?这是一个常见问题还是我的配置有问题?即使您使用了使用嵌入式模式和Apache prefork MPM的次优配置,也不会花那么长时间。不过,如果将Apache进程的MaxRequestsPerChild设置为1,情况可能会更糟 建议是,确保您使用的是mod_wsgi守护进程

我正在开发一个django网站,它在生产中使用mod_wsgi——几乎没有任何访问者,所以每当我访问它时,mod wsgi似乎会启动并打开python进程——完全加载大约需要1-2分钟


有什么我可以做的,不让它在初始启动时变慢?这是一个常见问题还是我的配置有问题?

即使您使用了使用嵌入式模式和Apache prefork MPM的次优配置,也不会花那么长时间。不过,如果将Apache进程的MaxRequestsPerChild设置为1,情况可能会更糟

建议是,确保您使用的是mod_wsgi守护进程模式,并使用单个多线程进程(WSGIDaemonProcess的默认设置)运行。这将确保至少只有一个Django实例,而不是每个Apache服务器进程一个

为了确认您正在做什么,请编辑您的问题,并发布当前Apache配置的片段,展示如何设置mod_wsgi位。还包括您使用的是ApachePrefork还是WorkerMPM,可以通过运行“httpd-V”来确定,以及您使用的是什么平台


顺便说一句,您是否尝试过一个简单的hello world WSGI程序来验证您的安装?请参阅“”。你有没有试过用一个空的Django站点,而不是你的真实站点,来看看它是否是你的改变?

再了解一下。您不想使用prefork MPM period,它将导致每个预分叉进程都有1x mod_wsgi进程

克服这一问题的最佳方法是使用worker MPM在守护进程模式下运行WSGI进程

编辑:

还要注意,您必须指定组,否则每个HTTPD进程在所有连接关闭后似乎都会创建自己的mod_wsgi进程

WSGIScriptAlias//usr/local/apache2/htdocs/ABC.com/build/wsgi.py WSGIPassAuthorization On WSGILazyInitialization关闭 WSGIDaemonProcess ABC.com用户=apache组=apache显示名称=%{group}进程=1线程=256
WSGIProcessGroup ABC.com

在这篇博文和这段视频中也谈到了这一点