在 Ubuntu(以及 Debian 和其他发行版)中有一些 Apache 软件包(mpm-event、mpm-prefork、mpm-worker)。哪个最适合在单 CPU 服务器上托管 Django mod_wsgi 应用程序?哪个包是 OpenVZ 容器的最佳选择?
在 Ubuntu(以及 Debian 和其他发行版)中有一些 Apache 软件包(mpm-event、mpm-prefork、mpm-worker)。哪个最适合在单 CPU 服务器上托管 Django mod_wsgi 应用程序?哪个包是 OpenVZ 容器的最佳选择?
如果您使用 mod_wsgi 守护程序模式,则使用哪个 Apache MPM 并不重要,尽管建议对于 UNIX 系统使用 worker MPM,除非您还必须使用 mod_php 托管 PHP 应用程序,因为某些 PHP 扩展不是线程安全的.
建议您必须拥有 worker MPM 才能使用 mod_wsgi 守护程序模式是错误的。重要的是底层 Apache 运行时库 (APR) 是否具有线程功能。即使在 Apache 中使用 prefork MPM,通常也是如此。唯一没有内置于 APR 的线程功能的系统是旧的基于 BSD 的系统,其中线程有点损坏。
工人 MPM 将是您的最佳选择。它与 mod_wsgi 兼容。事件 MPM 可能会提供更高的性能,但使用频率要低得多,并且任何性能改进都是最小的——因此我不会推荐它。Worker MPM 在单独的线程中处理每个请求,这使得它比传统的 prefork 模型更适合在 VPS 上使用,传统的 prefork 模型为每个连接使用一个完整的进程。
如果您在守护进程模式下使用 mod-wsgi(我更喜欢这种模式,因为我的 apache 服务器上正在运行其他站点),则需要 Worker。
如果您在嵌入式模式下使用 mod-wsgi,任何一个都可以。
它在文档中:http ://code.google.com/p/modwsgi/