Если у меня есть сервер, на котором запущен Apache, и я установлю FastCGI, это позволит мне запускать сценарии Ruby и Python? Если Python уже установлен на сервере, разве я не смогу просто добавить .py в раздел CGI в файле httpd.conf, чтобы скрипты Python работали?
Устраняет ли это для Ruby и Java необходимость в Mongrel и Tomcat, если установлены Ruby и Java?
Если я чего-то не упускаю, похоже, что FastCGI позволяет вам делать только то, что вы уже можете делать.
FastCGI - это замена «стандартных» сценариев CGI.
В CGI старой школы веб-сервер запускал ваш скрипт, отправлял ему запрос, ждал ответа, а затем ожидал, что ваш скрипт завершится.
Главная особенность FastCGI в том, что ваш скрипт не умирает, а зависает в ожидании следующего запроса. Это делает его гораздо более эффективным, потому что не создается другой процесс, не перезагружается вероятно интерпретируемый сценарий и т. Д. Это большая победа для Perl, Ruby и почти всех других языков.
Обратной стороной является то, что ваш сценарий должен быть написан для обработки таких вещей. Это не трудно.
Итак, FastCGI - это снижение влияния обслуживания запроса.
Если вы используете Ruby on Rails (а не только ruby), загляните в Phusion Passenger. Это замечательный серверный плагин, который делает запуск Ruby on Rails довольно приятным.
Что касается mod_python, вы, безусловно, можете это сделать. Однако есть компромиссы. Во-первых, сценарий CGI может работать не от основного веб-сервера, а от имени другого пользователя. Я не знаю, делает ли это mod_python. Может быть очень полезно иметь возможность работать от имени другого пользователя при проблемах с разрешениями, разделении приложений на разных пользователей и т. Д.
Итак, чтобы ответить на ваш вопрос немного иначе, если вы хотите использовать mod_python и Phusion Passenger, вам не нужно использовать FastCGI. Если вы должны запускать сценарии в другом процессе, чем сервер, тогда вы хотите использовать FastCGI, если можете, вместо простого старого CGI.
FastCGI - это оптимизированная версия CGI. Он соответствует интерфейсу CGI, добавляя распределенные вычисления.
Вы можете запускать скрипты python через CGI (полезны модули cgitb), но обычно лучше использовать фреймворк, такой как mod_python, по причинам производительности и функциональности. Похожая ситуация с Ruby и Java.
Я не уверен, что вы пытаетесь сделать. Вы не можете просто заменить Mongrel или Tomcat на FastCGI. Это совершенно разные звери. Вам необходимо переписать приложение, чтобы оно соответствовало интерфейсу веб-сервера.