Mod_perl vs mod_fastcgi

Я разрабатываю веб-приложение в Perl с некоторыми C, как это необходимо для хруста. Основная проблема, с которой я сейчас сталкиваюсь, заключается в том, чтобы решить, использовать ли mod-perl, mod-fastcgi или оба для запуска своих сценариев, потому что мне сложно провести анализ плюсов и минусов каждого мода.

Может ли кто-нибудь опубликовать резюме или дать ссылку, где я могу найти некоторую информацию сравнения и, возможно, некоторые рекомендации с примерами?

Ответы

Ответ 1

Они совсем другие звери.

mod_fastcgi (кстати, рекомендуется mod_fcgid) просто поддерживает протокол FCGI для выполнения CGI быстрее с помощью некоторых регуляторов для управления количеством процессов он работает одновременно и не намного больше.

mod_perl, с другой стороны, является платформой для разработки приложений, которая предоставляет большинство внутренних компонентов Apache, чтобы вы могли настраивать каждую ручку веб-сервера из своего кода, ускорять CGI и гораздо больше.

Если вы хотите, чтобы вы быстро запускали CGI и хотите поддерживать как можно больше хостов, вам следует придерживаться двух способов запуска вашего кода и, возможно, стандартного CGI.

Если вы заботитесь о максимальной эффективности за счет гибкости, вы можете ориентироваться на одну платформу, возможно, mod_perl.

Но, вероятно, самым подходящим вариантом является запуск повсюду и использование структуры для создания приложения, которое позаботится о том, чтобы использовать преимущества конкретного способа выполнения, если они есть, например Catalyst.

Ответ 2

Я бы посоветовал использовать структуру, такую ​​как Catalyst, которая заботится о таких деталях. Для большинства приложений не имеет значения, как программа подключается к веб-серверу, если это делается эффективным образом. Выбор между mod_perl и FastCGI должен выполняться sysadmin, который его развертывает, а не разработчиком.

Ответ 3

Вот сайт с некоторыми фактическими сопоставлениями производительности mod_perl, mod_fastcgi, cgi (Perl) и сервлета Java - для очень простого script: https://sites.google.com/site/arjunwebworld/Home/programming/apache-jmeter

Вкратце:

cgi - 1200+ requests per minute
mod_perl - 6000+ requests per minute (ModPerl::PerlRun only)
fast_cgi - 6000+ requests per minute
mod_perl - 6000+ requests per minute (ModPerl::Registry)
servlets - 2438 requests per minute.

На PerlMonks есть старый поток, сравнивающий mod_perl и fastcgi здесь: http://www.perlmonks.org/?node_id=108008