%3F.png)
Se eu tiver um servidor rodando Apache e instalar o FastCGI, isso me permitiria executar scripts Ruby e Python? Se o Python já estiver instalado no servidor, eu não seria capaz de adicionar .py à seção CGI no arquivo httpd.conf para que os scripts Python funcionassem?
Para Ruby e Java, elimina a necessidade de Mongrel e Tomcat se Ruby e Java estiverem instalados?
A menos que esteja faltando alguma coisa, parece que o FastCGI só permite que você faça o que já pode fazer.
Responder1
FastCGI é um substituto para scripts CGI "padrão".
No CGI antigo, o servidor web iniciava seu script, enviava uma solicitação, aguardava uma resposta e esperava que seu script fosse finalizado.
A principal característica do FastCGI é que seu script não morre, mas fica esperando por outra solicitação. Isso o torna muito mais eficiente porque outro processo não é criado, o script provavelmente interpretado não é recarregado, etc. Esta é uma grande vitória para Perl, Ruby e praticamente todas as outras linguagens.
A desvantagem é que seu script deve ser escrito para lidar com esse tipo de coisa. Não é díficil.
Portanto, FastCGI visa reduzir o impacto do atendimento de uma solicitação.
Se você estiver usando Ruby on Rails (não apenas Ruby), consulte Phusion Passenger. É um plug-in de servidor incrível que torna a execução do Ruby on Rails bastante agradável.
Quanto ao mod_python, você certamente pode fazer isso. No entanto, existem compensações. Por um lado, um script CGI pode ser executado como outro usuário que não o servidor web principal. Não sei se mod_python faz isso. Pode ser muito útil poder executar como um usuário diferente para problemas de permissão, manter aplicativos separados por execução em usuários diferentes, etc.
Então, para responder sua pergunta de forma um pouco diferente, se você deseja usar mod_python e Phusion Passenger, não precisa usar FastCGI. Se você precisar executar os scripts em um processo diferente do servidor, use o FastCGI, se possível, em vez do CGI antigo.
Responder2
FastCGI é uma versão otimizada do CGI. Corresponde à interface do CGI, agregando computação distribuída.
Você pode executar scripts python por meio de CGI (os módulos cgitb são úteis), mas geralmente é melhor usar uma estrutura como mod_python por motivos de desempenho e recursos. A situação é semelhante com Ruby e Java.
Não tenho certeza do que você está tentando fazer. Você não pode simplesmente substituir Mongrel ou Tomcat por FastCGI. São feras completamente diferentes. Você precisa reescrever o aplicativo para ajustar a interface ao servidor web.