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

Prefork Apache vs. worker - что не так с моими настройками?

Я установил PHP как модуль Apache. у меня было prefork все это время работает. Я читал это worker потребляет меньше памяти, но обеспечивает более высокую производительность]1. Итак, я отредактировал /etc/sysconfig/httpd и раскомментировал:

HTTPD=/usr/sbin/httpd.worker

и перезапустил Apache.

Однако когда я бегу httpd -l, Я все еще получаю следующее:

core.c prefork.c http_core.c mod_so.c

что значит prefork все еще работает, но нет worker, Я полагаю.

Теперь, когда я запускаю верхнюю команду, я получаю httpd.worker под COMMAND столбец вместо просто httpd.

У меня вопрос: верны ли мои текущие настройки и повлияют ли они на производительность или потребление памяти моего сервера?

Я видел, как люди включали Apache worker и PHP FastCGI в одни и те же учебники, поэтому я предполагаю, что эти 2 идут рука об руку друг с другом. Стоит ли настраивать PHP FastCGI для замены mod_php сейчас?

Кстати, я использую Amazon EC2.

На производной от RHEL, httpd использует prefork и httpd.worker использует worker.

Изменение строки в sysconfig меняет, какой двоичный файл использует служба, но когда вы напрямую запускаете двоичный файл prefork, вы всегда будете видеть prefork как живой MPM (и httpd.worker -l даст вам ожидаемые результаты.

Итак, ваш конфиг работает правильно.

Я видел, как люди включали Apache worker и PHP FastCGI в одни и те же учебники, поэтому я предполагаю, что эти 2 идут рука об руку друг с другом. Следует ли мне сейчас настроить PHP FastCGI для замены mod_php?

В конфигурации по умолчанию производной RHEL конфигурация автоматически переключится на модуль ZTS для обеспечения безопасности потоков, когда вы переключитесь на worker. FastCGI не является обязательным требованием, но вы определенно можете настроить его, если это ваше предпочтительное развертывание.