Apache prefork против Workder - что не так с моими настройками?
Я установил 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
, Я полагаю.
Теперь, когда я запускаю команду top, я получаю httpd.worker
под COMMAND
столбец вместо просто httpd
,
У меня такой вопрос: мои текущие настройки неверны и будут ли они вредить производительности или потреблению памяти моего сервера?
Я видел, как люди включают Apache worker и PHP FastCGI в одни и те же учебные пособия, поэтому я предполагаю, что эти два идут рука об руку друг с другом. Должен ли я настроить PHP FastCGI для замены mod_php
сейчас?
Я использую Amazon EC2, кстати.
1 ответ
На производной RHEL, httpd
использует prefork и httpd.worker
использует рабочий.
Изменение строки в sysconfig изменяет, какой двоичный файл использует служба, но когда вы непосредственно запускаете двоичный файл prefork, вы всегда будете видеть prefork как живой MPM (и работающий httpd.worker -l
даст вам ожидаемые результаты.
Итак, ваш конфиг работает правильно.
Я видел, как люди включают Apache worker и PHP FastCGI в одни и те же учебные пособия, поэтому я предполагаю, что эти два идут рука об руку друг с другом. Должен ли я настроить PHP FastCGI для замены mod_php сейчас?
В конфигурации по умолчанию для производной RHEL, конфигурация автоматически переключится на модуль ZTS для обеспечения безопасности потоков, когда вы переключитесь на рабочий. FastCGI не является обязательным требованием, но вы определенно можете настроить его, если это ваше предпочтительное развертывание.