我在 Ubuntu 10.04 服务器上运行 Apache prefork MPM。它监听端口 8080。一个进程以 的身份运行root
,子进程以 的身份运行www-data
。这与宣传的一样。
但是,该root
进程也会响应请求!因此,有些请求被响应为root
,大多数请求被响应为www-data
。这当然很不幸。
这是什么原因?httpd.conf 说
MinSpareServers 2
MaxSpareServers 5
StartServers 1
MaxClients 50
答案1
我相信您看到的情况是绝对安全的:父进程已在内部将 root 权限降低到 www-data,以便处理请求。进程本身当然仍由 root 拥有,因为 root 启动了它,并且如果它们被调用,它仍然需要以 root 身份运行某些操作(例如信号处理程序来处理重新加载配置文件和重新配置服务器)。