Назад | Перейти на главную страницу

Почему корневой процесс Apache отвечает на запросы?

Я запускаю предварительный форк MPM Apache на сервере Ubuntu 10.04. Он прослушивает порт 8080. Один процесс работает как root, а дочерние процессы выполняются как www-data. Это как рекламируется.

Однако root процесс тоже отвечает на запросы! Поэтому на некоторые запросы отвечают как root, и большинство из них www-data. Конечно, это прискорбно.

В чем причина этого? httpd.conf говорит

MinSpareServers 2
MaxSpareServers 5
StartServers 1
MaxClients 50

Я считаю, что то, что вы видите, совершенно безопасно: родительский процесс внутренне сбросил корневые perms до www-данных для битов, которые выполняют обработку запроса. Сам процесс, конечно, по-прежнему принадлежит пользователю root, так как он был запущен root, и ему все еще нужно запускать некоторые вещи от root, если они вызываются (например, обработчики сигналов для обработки перезагрузки файла (ов) конфигурации и перенастройки сервера).