У меня есть веб-продукт на PHP, который теоретически должен поддерживать множество пользователей. Проблема в том, что я просто оставил apache как есть и обнаружил, что он работает как CGI. Это очень неправильно и я должен сделать это в fastcgi или просто оставить как есть?
просто поймите разницу между двумя подходами:
с участием cgi
веб-сервер запускает новый процесс (сценарий, который вы хотите создать в ответ для браузера) для каждого запроса. (если никто не посещает ваш сервер, никакие процессы не простаивают).
с участием fastcgi
у вас есть куча запущенных экземпляров этих нужных «скриптов». (такой подход экономит ваше время на запуск новых процессов, но вы должны держать под контролем кучу запущенных экземпляров, Google для php-fpm).
что выбрать сейчас: если количество реальных посетителей соответствует вашим «теоретическим» ожиданиям И у вас низкая производительность: подумайте о переходе с «cgi» на «fastcgi». в любом случае вам следует прочитать слово «fastcgi», чтобы углубить свой набор навыков. но никаких действий (жестких) не требуется, пока количество пользователей невелико, а скорость нормальная.
Единственные веские причины для использования CGI вместо fastCGI или модуля apache:
Если ни один из них не подходит, ваш веб-сайт будет работать намного медленнее и потребовать больше ресурсов для работы, поскольку ОС должна запускать новый процесс для каждого запроса.
Что такое «большой масштаб»? Для некоторых это 10 миллионов просмотров страниц в месяц, примерно 10 миллионов просмотров страниц в час. Что это для тебя?
То, что вы упомянули в комментарии «1,5 тысячи посещений в день», конечно, не является большим числом, и традиционный CGI будет работать с таким трафиком без каких-либо проблем. В зависимости от того, какие веб-приложения работают в ваших системах, традиционный CGI, вероятно, будет работать с трафиком в сто раз более загруженным, чем ваш текущий трафик.
Но забудем о цифрах.
FastCGI быстрее, чем традиционный CGI, потому что уже есть рабочие процессы, которые уже работают, ожидая обработки новых запросов. В традиционном CGI каждый запрос порождает новый процесс. Теоретически FastCGI может помочь вам уже во времени ответа сайта, полностью в зависимости от того, является ли текущее узкое место вашим веб-приложением (например, фактическим узким местом являются вызовы базы данных).