in a production environment running nginx reversing back to apache mpm-prefork/mod_wsgi, im seeing 90 apache child processes, when i would expect that 40 would be the maximum, as configured below. the configuration/setup is nothing exciting:
- nginx is reverse proxying to apache via
proxy_pass
, and serving static media - apache only serves dynamic requests
relevant nginx config:
worker_processes 15;
events {
worker_connections 1024;
}
keepalive_timeout 10;
relevant apache config:
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_prefork_module>
StartServers 20
MinSpareServers 7
MaxSpareServers 10
MaxClients 200
MaxRequestsPerChild 0
</IfModule>
mod_wsgi config, where webapp
is the name of the process:
WSGIDaemonProcess webapp user=www group=users threads=1 processes=40
am i missing something?
I think Graham Dumpleton may have answered your question in his blog recently.
Edit
I guess I should point out that his blog post is mostly about mod_python, but I think his explanation of how prefork works may give you some insight as to where the additional processes are coming from.