apache 创建多个进程
apache creates more then one process
我正在使用 mod wsgi 在 apache 中 运行ning django 应用程序。从以下配置开始,我已将服务器限制设置为 1。
00-mpm.conf
<IfModule worker.c>
StartServers 1
ServerLimit 1
#MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
开始使用一台服务器的 apache 运行s。但是过了一段时间,当我用两台服务器检查它 运行s 时。我在 error.log
中收到以下错误
[mpm_worker:notice] [pid 46754:tid 139924109117568] AH00297: SIGUSR1 received. Doing graceful restart.
如何确保只有一台服务器的 apache 运行。而且不重启。
Apache 运行一个父进程,然后运行一个具有该配置的子工作进程。父进程的大小会非常小,因为它所做的只是管理子工作进程并在它死亡时重新启动它等。请求仅由子工作进程处理。所以你看到的是正常的。
为什么要将其限制为一个进程?如果是为了满足您的 WSGI 应用程序只能有一个进程的某些要求,您无论如何都不应该使用嵌入式模式。使用mod_wsgi的daemon模式,在这种情况下WSGI应用会默认使用一个进程。
所以放回 Apache MPM 设置然后使用:
WSGIRestrictEmbedded On
WSGIDaemonProcess myapp
WSGIScriptAlias / /some/path/myapp.wsgi process-group=myapp application-group=%{GLOBAL}
这将导致 Apache 父进程,但是许多子工作进程 Apache 需要接受和代理请求,并且单个 mod_wsgi 守护进程 运行 WSGI 应用程序,子进程工作进程正在代理请求。
我正在使用 mod wsgi 在 apache 中 运行ning django 应用程序。从以下配置开始,我已将服务器限制设置为 1。
00-mpm.conf
<IfModule worker.c>
StartServers 1
ServerLimit 1
#MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
开始使用一台服务器的 apache 运行s。但是过了一段时间,当我用两台服务器检查它 运行s 时。我在 error.log
中收到以下错误[mpm_worker:notice] [pid 46754:tid 139924109117568] AH00297: SIGUSR1 received. Doing graceful restart.
如何确保只有一台服务器的 apache 运行。而且不重启。
Apache 运行一个父进程,然后运行一个具有该配置的子工作进程。父进程的大小会非常小,因为它所做的只是管理子工作进程并在它死亡时重新启动它等。请求仅由子工作进程处理。所以你看到的是正常的。
为什么要将其限制为一个进程?如果是为了满足您的 WSGI 应用程序只能有一个进程的某些要求,您无论如何都不应该使用嵌入式模式。使用mod_wsgi的daemon模式,在这种情况下WSGI应用会默认使用一个进程。
所以放回 Apache MPM 设置然后使用:
WSGIRestrictEmbedded On
WSGIDaemonProcess myapp
WSGIScriptAlias / /some/path/myapp.wsgi process-group=myapp application-group=%{GLOBAL}
这将导致 Apache 父进程,但是许多子工作进程 Apache 需要接受和代理请求,并且单个 mod_wsgi 守护进程 运行 WSGI 应用程序,子进程工作进程正在代理请求。