Разъемы Apache 2.4 и PHP-FPM

Не смог нигде найти ответ на вопрос, который беспокоит меня несколько дней:

В соответствии с Apache документация в файлах виртуального хоста я должен написать это:

ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/path/to/socket.sock|fcgi://127.0.0.1:9000/path/to/your/documentroot/

Но нужно ли использовать другой порт fcgi для других сайтов? например

...socket2.sock|fcgi://127.0.0.1:9001...
...socket3.sock|fcgi://127.0.0.1:9002...

Или же

...socket2.sock|fcgi://127.0.0.1:9000...
...socket3.sock|fcgi://127.0.0.1:9000...

Это работает в обоих направлениях — без ошибок в журналах или на экране. Я знаю, что если бы я использовал TCP, а не сокеты UNIX, я должен использовать разные порты для каждого сайта (а также, если бы я использовал один и тот же порт, это выдало бы ошибку), но я не уверен, что понимаю синтаксис Apache.

2

Решение

Все зависит от того, как вы настраиваете свои рабочие пулы для php-fpm.

Например, в Centos 7 вы найдете www.conf в /etc/php-fpm.d/

Обычно это конфигурация для порта 9000.

Вы можете использовать один и тот же порт для всех ваших виртуальных хостов без каких-либо проблем.

Но если по замыслу вы хотите использовать другой порт для разных виртуальных хостов, вы можете просто продублировать www.conf, переименовать его и отредактировать файл.

Убедитесь, что вы изменили название бассейна наверху. Вы найдете имя по умолчанию [www]. Вы можете отредактировать его как [your_preferred_pool_name]

Затем в опции прослушивания вы можете изменить порт на желаемый.

После перезапуска php-fpm у вас будет пул [www] и пул [your_preferred_pool_name].

Чтобы настроить виртуальный хост для использования нового пула, просто обновите конфигурацию ProxyPassMatch, обновив порт до вновь определенного порта в файле conf.

Но опять же, использование одного пула (порта) для всех ваших виртуальных хостов должно работать без каких-либо проблем.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]