Apache mod_proxy_fcgi: один прокси-сервер для каждого vhost?
Я настраивал сервер, используя 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:// backend".
Их пример:
<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 для каждого Vhost и задаю SetHandler для каждого vhost, чтобы он использовал правильный пул. Должен ли я настраивать нового прокси-работника для каждого vhost?
Пример 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 правильно?
1 ответ
Я понимаю, что не до конца понял, что настраивал. Как сказано в документации mod_proxy, Apache запускается с 2 рабочими по умолчанию для mod_proxy, один для запросов Forward Proxy и один для запросов Reverse Proxy. Эти работники имеют в виду работников МПМ, это то, чего я не понимал. В моем случае это работники mpm_event, каждый из которых работает так, как он настроен в конфигурации Apache.
Нет правильного ответа на этот вопрос без предварительного рассмотрения вашего использования и рабочей конфигурации. Если вы чувствуете, что один работник mpm может обрабатывать все ваши сайты, нет причин не использовать работника по умолчанию, fcgi://localhost. Если у вас есть один большой сайт и вы хотите, чтобы у него был собственный рабочий mpm, все, что вам нужно сделать, это указать новый прокси-сервер и настроить обработчик на его использование.