Недавно мне предложили использовать FastCGI с PHP. Теперь я зашел на страницу FastCGI и прочитал ее, но я не совсем понимаю, в чем преимущества.
источник
Недавно мне предложили использовать FastCGI с PHP. Теперь я зашел на страницу FastCGI и прочитал ее, но я не совсем понимаю, в чем преимущества.
Используя mod_php, каждый рабочий Apache загружает весь интерпретатор PHP. Поскольку для каждого входящего запроса Apache требуется один рабочий процесс, вы можете быстро получить сотни рабочих Apache, каждый с загруженным собственным интерпретатором PHP, который потребляет огромные объемы памяти.
(Обратите внимание, что это не совсем так, Apache worker_mpm
позволяет обслуживать много запросов с помощью однопоточного рабочего Apache. Однако даже в 2009 году это не рекомендуемый способ развертывания PHP из-за подозрений о проблемах с многопоточностью в расширениях PHP.)
Использование PHP в режиме fast_cgi (используя что-то вроде spawn-fcgi из пакета lighttpd) имеет следующие преимущества
FastCGI означает, что биты php не выполняются в том же процессе, что и биты apache, в отличие от mod_php. Такое разделение может иметь некоторые определенные преимущества, когда речь идет о перезапуске сервера или работе с запущенными приложениями - в случае mod_php это означает, что это «сбежавший» процесс apache, но в fastcgi это просто процесс, с которым обращается apache, поэтому весь сервер не должен быть снят.
Еще одно преимущество, которое еще не упомянуто, заключается в том, что с помощью mod_fcgid
(которая является более новой реализацией для использования FastCGI на Apache) и suexec вы можете реализовать настройки, когда разные vhosts используют разных пользователей Linux для выполнения, что может быть реальным преимуществом безопасности в сценарии общего хостинга ,
С mod_php все vhosts совместно используют одного и того же пользователя, который является пользователем Apache. Это может привести к проблемам безопасности.