Использование HHVM с FastCGI на сервере общего хостинга

Я надеюсь, что кто-то здесь может пролить свет на нижеследующее:

Я занят настройкой сервера общего хостинга с использованием NGINX и HHVM с аварийным переключением PHP-FPM. Я планирую разместить на сервере от 100 до 200 сайтов Wordpress.

HHVM настроен на использование FastCGI. Возможно ли иметь один экземпляр HHVM с несколькими веб-сайтами, каждый из которых является соответствующим пользователем Linux? Или мой единственный вариант - запустить все как пользователь www-data по умолчанию?

Я надеюсь избежать последней среды в стиле суповой кухни из-за очевидной безопасности и риска перекрестного загрязнения, который она представляет. Я видел упоминание о запуске отдельных экземпляров HHVM, по одному на веб-сайт, но это звучит как довольно ресурсоемкий вариант.

Если невозможно иметь один экземпляр HHVM с FastCGI и запускать процессы PHP каждого веб-сайта от имени соответствующего пользователя Linux, я, вероятно, предпочту отказаться от HHVM в пользу PHP-FPM, что позволит мне достичь последнего.

Любые советы или рекомендации будут с благодарностью!!

Спасибо


person terfys    schedule 27.03.2015    source источник


Ответы (1)


Хотя один экземпляр HHVM может обслуживать множество общих сайтов (это довольно простая конфигурация nginx), это все же один процесс HHVM, обслуживающий их все, т. е. работающий от имени одного и того же пользователя. Если вам нужно полное разделение между каждым сайтом, вам придется запускать отдельный экземпляр HHVM для каждого. Команда надеется поработать над тем, чтобы сделать эту настройку виртуального хостинга более гладкой в ​​какой-то момент.

Это компромисс производительности. HHVM по умолчанию запускается как единый процесс, где каждый запрос представляет собой поток внутри этого процесса. Это позволяет HHVM более эффективно обслуживать запросы: он не создает новый процесс для каждого запроса, и, если вы обслуживаете несколько запросов к одному и тому же сайту, запросы могут совместно использовать данные, такие как скомпилированный байт-код и сборка ( «кэш переводов»).

Модель PHP-FPM на самом деле похожа на последнюю идею, которую вы предлагаете для решения своей проблемы: PHP-FPM всегда создает новый процесс для каждого запроса. У него нет опции для модели с резьбой, которая есть у HHVM. Конечно, процессы, вероятно, — это то, что вам нужно в среде общего хостинга в любом случае.

Однако PHP-FPM имеет несколько меньшую стоимость запуска и накладные расходы памяти на процесс, чем HHVM. Этот компромисс зависит от вас и ваших клиентов. Улучшение работы HHVM в такой конфигурации общего хостинга, как я уже сказал выше, является тем, что команда надеется сделать в какой-то момент более плавной.

person Josh Watzman    schedule 28.03.2015