Я настраивал сервер с использованием Apache 2.4, mpm_event, mod_proxy_fcgi и php_fpm.
В документации mod_proxy_fcgi (https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html) упоминается: «Из соображений производительности вы захотите определить воркер, представляющий тот же бэкэнд fcgi: //».
Их пример:
<FilesMatch "\.php$">
# Note: The only part that varies is /path/to/app.sock
SetHandler "proxy:unix:/path/to/app.sock|fcgi://localhost/"
</FilesMatch>
# Define a matching worker.
# The part that is matched to the SetHandler is the part that
# follows the pipe. If you need to distinguish, "localhost; can
# be anything unique.
<Proxy "fcgi://localhost/" enablereuse=on max=10>
</Proxy>
Теперь мой вопрос; У меня есть настройка пула php_fpm для каждого виртуального хоста, и я указываю «SetHandler» для каждого виртуального хоста, чтобы он использовал правильный пул. Следует ли мне также настраивать нового прокси-исполнителя для каждого виртуального хоста?
Пример Vhost 1:
<FilesMatch "\.php$">
SetHandler "proxy:unix:/path/to/app1.sock|fcgi://app1/"
</FilesMatch>
<Proxy "fcgi://app1/" enablereuse=on max=10></Proxy>
Пример Vhost 2:
<FilesMatch "\.php$">
SetHandler "proxy:unix:/path/to/app2.sock|fcgi://app2/"
</FilesMatch>
<Proxy "fcgi://app2/" enablereuse=on max=10></Proxy>
Или правильно ли использует fcgi: // localhost / в каждом SetHandler?
Я понимаю, что не совсем понял, что настраивал. Как говорится в документации mod_proxy, Apache начинается с двух рабочих процессов по умолчанию для mod_proxy, одного для запросов прямого прокси и одного для запросов обратного прокси. Эти рабочие имеют в виду рабочих MPM, вот чего я не понял. В моем случае это рабочие mpm_event, каждый запускается так, как они настроены в конфигурации Apache.
На этот вопрос нет правильного ответа без предварительного рассмотрения вашего использования и конфигурации рабочего стола. Если вы чувствуете, что один воркер mpm может обрабатывать все ваши сайты, нет причин не использовать воркера по умолчанию, fcgi: // localhost. Если у вас есть один большой сайт и вы хотите, чтобы у него был собственный mpm-воркер, все, что вам нужно сделать, это указать новый прокси и настроить свой обработчик для его использования.