无法连接到 WSGI 守护进程“wsgi”

Har*_*eep 2 apache django mod-wsgi wsgi

正如之前在多个问题/答案中强调的那样,即这个这个我已经将我的配置WSGISocketPrefix/etc/httpd/run/wsgi

/etc/httpd/run 目录具有 root:apache 权限,创建的 sock 文件具有 apache:root 权限。

我面临的问题是 apache总是试图连接到比它应该寻找的少一个的袜子。示例袜子是/var/run/httpd/wsgi.1769.1.1.sock但 apache 寻找/var/run/httpd/wsgi.1769.0.1.sock

AFAIK 没有权限问题,问题在于 apache 正在查找的 WSGI 袜子号。我怎样才能克服这个问题?为什么sock-versionwsgi 和 apache 之间存在不匹配?

确切的日志行: (2)No such file or directory: [client A.B.C.D:57798] mod_wsgi (pid=1549): Unable to conn ect to WSGI daemon process 'wsgi' on '/etc/httpd/run/wsgi.1144.0.1.sock' after multiple attempts.

Gra*_*ton 5

很可能是因为您已经完成了 Apache 正常重启,并且有一个使用保持活动状态的长期客户端连接,这使 Apache 子工作进程保持运行,并尝试处理同一连接上的进一步请求。该进程只会尝试连接到创建该进程时存在的守护进程组,但重新启动意味着守护进程组已重新启动。出于安全原因,它无法切换到使用守护进程组的新实例,因为配置更改意味着它可能不应该这样做。允许它可能会导致安全漏洞。

没有简单的方法可以缓解它,除非不使用优雅的重启,或者为客户端连接打开保持活动状态。

你多久进行一次优雅的重启?您对动态 Python 应用程序的保持活动连接的依赖程度如何?