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

Apache mod_proxy_fcgi: один прокси-работник на виртуальный хост?

Я настраивал сервер с использованием 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-воркер, все, что вам нужно сделать, это указать новый прокси и настроить свой обработчик для его использования.