我正在开发一个django网站,用于生产使用mod_wsgi - 几乎没有任何访问者,所以我每次访问它似乎mod wsgi启动并打开python进程 - 大约需要1-2分钟完成加载。mod_wsgi在启动时过度缓慢?
有什么我可以做的,不要让它在初始启动时变慢?这是一个常见问题还是只是我的配置问题?
我正在开发一个django网站,用于生产使用mod_wsgi - 几乎没有任何访问者,所以我每次访问它似乎mod wsgi启动并打开python进程 - 大约需要1-2分钟完成加载。mod_wsgi在启动时过度缓慢?
有什么我可以做的,不要让它在初始启动时变慢?这是一个常见问题还是只是我的配置问题?
即使您使用嵌入式模式和Apache prefork MPM的次优配置,也不应该花那么长时间。尽管如果MaxRequestsPerChild的Apache进程设置为1,可能会让事情变得更糟。
建议是,确保您使用的是mod_wsgi守护程序模式并使用单个多线程进程(WSGIDaemonProcess的默认设置)运行。这将确保至少只有一个Django实例,并且每个Apache服务器进程不可能有一个实例。
作为您正在做什么的确认,请编辑您的问题并发布当前Apache配置的片段,以显示如何设置mod_wsgi位。还包括是否使用Apache prefork或worker MPM,通过运行'httpd -V'和您使用的平台来确定。
顺便说一句,你有没有尝试过一个简单的世界WSGI程序来验证你的安装?参见'http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide'。您是否尝试过使用空的Django网站,而不是真正的网站来查看它是否是您的更改?
只是在这个更多的光。您不想使用prefork MPM周期,它会为每个预分叉的进程导致1x mod_wsgi进程。
解决此问题的最佳方法是使用worker MPM以Daemon模式运行WSGI进程。
https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#using-mod-wsgi-daemon-mode
编辑:
另外请注意,您必须指定组否则每个HTTPD进程似乎创建自己的mod_wsgi过程中的所有连接都关闭后。
WSGIScriptAlias//usr/local/apache2/htdocs/ABC.com/build/wsgi.py WSGIPassAuthorization论 WSGILazyInitialization关 WSGIDaemonProcess ABC.com用户=阿帕奇组= apache的显示名称=%{GROUP}过程= 1个线程= 256 WSGIProcessGroup ABC.com
此博客文章中还讨论了http://blog.dscpl.com.au/2012/10/why-are-you-using-embedded-mode-of。 HTML和这个视频https://www.youtube.com/watch?v=k6Erh7oHvns – 2016-12-16 01:18:17