Не смог нигде найти ответ на вопрос, который беспокоит меня несколько дней:
В соответствии с 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.
Все зависит от того, как вы настраиваете свои рабочие пулы для 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.
Но опять же, использование одного пула (порта) для всех ваших виртуальных хостов должно работать без каких-либо проблем.
Других решений пока нет …