在运行 nginx 的生产环境中,回退到 apache mpm-prefork/mod_wsgi,我看到90apache 子进程,我预计最大值是 40,配置如下。配置/设置没什么令人兴奋的:
- nginx 通过 反向代理到 apache
proxy_pass
,并提供静态媒体服务 - apache 仅处理动态请求
相关 nginx 配置:
worker_processes 15;
events {
worker_connections 1024;
}
keepalive_timeout 10;
相关 apache 配置:
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_prefork_module>
StartServers 20
MinSpareServers 7
MaxSpareServers 10
MaxClients 200
MaxRequestsPerChild 0
</IfModule>
mod_wsgi 配置,其中webapp
是进程的名称:
WSGIDaemonProcess webapp user=www group=users threads=1 processes=40
我遗漏了什么吗?
答案1
我认为 Graham Dumpleton 可能最近在他的博客中回答了你的问题。
编辑
我想我应该指出他的博客文章主要是关于 mod_python 的,但我认为他对 prefork 如何工作的解释可能会让你了解额外进程的来源。