Использование Apache v2.4+ с отключенным mod_php, включенным php-fpm и mpm_event (вместо mpm_prefork по умолчанию) обеспечивает лучшую производительность (и параметры настройки, IMO) для PHP/PHP-FPM и многопоточных процессов. Использование nginx в качестве интерфейсного веб-сервера в «выборочном обратном прокси-сервере для apache2/httpd для процессов PHP» по-прежнему будет предлагать дополнительные преимущества, такие как превосходное статическое обслуживание файлов, параметры кэширования + простой обратный прокси-сервер + набор функций балансировки нагрузки nginx и добавление превосходная многопоточная производительность Apache.
Мой «ответ» здесь будет:
Я рекомендую использовать Apache v2.4+ в качестве серверной части для процессов PHP с nginx в качестве общедоступного обратного прокси-сервера. Основная проблема, по-видимому, связана с масштабируемостью, поэтому я думаю, что мое предложение обеспечит большую масштабируемость и уменьшит потребление ресурсов «в масштабе» с минимальным увеличением потребления ресурсов в режиме ожидания.
=============================
Вот тут-то и проявляется мое любопытство (то есть чувство любопытства, возможно, удалю позже, я не знаю):Извините, если я занимаюсь некромантией в этой теме, но материал и контент по теме отделения PHP-FPM от веб-сервера в отдельный контейнер ограничены.
Я здесь спрашивал именно об этой теме
, а здесь в ОП есть смутное упоминание о "причинах масштабируемости".
Хотя мой «ответ» на самом деле не отвечает на вопрос, предложенный в ФП... Это я предлагаю решение, спрашивая: «Действительно ли это вообще правильный вопрос?»
Я согласен с основной мыслью, которую пытается донести @simbo1905. Просто используйте тот же контейнер для веб-сервера + php-fpm.
Но...
Что такого в том, что отключение PHP-FPM от веб-сервера (в данном случае: nginx) увеличивает масштабируемость приложения? Почему бы не использовать несколько экземпляров совпадающих контейнеров с nginx+php-fpm, работающими вместе? Как предполагает ответ @simbo1905 с apache2+php-fpm?
Я вижу, что высказываются мнения о безопасности и масштабируемости. Я понимаю концепцию масштабирования экземпляров контейнеров php-fpm при большой нагрузке, но nginx позволяет ОЧЕНЬ легко балансировать такую нагрузку. Почему бы не получить дополнительное преимущество в виде дополнительных ресурсов с балансировкой нагрузки, если вы обеспокоены масштабируемостью использования ресурсов php-fpm?
Я не уверен, какие преимущества дает запуск отдельного экземпляра PHP-FPM, если вы можете просто «потратить» дополнительные крошечные КБ дискового пространства и оперативной памяти для более стабильного и производительного приложения. Если происходит сбой процесса(ов) PHP-FPM или процесса(ов) nginx, происходит сбой приложения.