apache2-рабочий + cgi-perl по сравнению с apache2-предварительным-ветвлением + mod_perl - что быстрее? что берет меньше ресурсов?

Можно попробовать этот суппликант: www.securew2.com

Это, кажется, популярно в европейской научно-исследовательской сети.

2
задан 26 January 2010 в 13:12
4 ответа

На Linux используйте апача перед ветвлением w/mod_perl. Потоковый MPM является огромной победой для пользователей Win32, где создание процесса является дорогим. На ветвлении Linux () довольно дешевый вызов. Однако Mod_perl2 devs прошел большое усилие заставить mod_perl2 работать с apache2 + потоки, но модель потока в жемчуге является немного интенсивно использующей память.

Мы разрабатываем большое mod_perl приложение, и если бы мы должны были воссоздать его сегодня, то я, вероятно, рекомендовал бы одну из различных платформ и использовал бы FastCGI или PSGI. Используя FCGI или основу с собственными возможностями PSGI/FCGI позволяет Вам иметь свой выбор фронтендов (nginx, lighttpd, apache2). Вы можете chroot Ваше приложение и понижаться, это - privledges (этому только нужен сокет, чтобы говорить с Вашим фронтэндом). Если Вы заставляете свое приложение использовать mod_perl2, Ваш в значительной степени женатый на Apache2.

1
ответ дан 3 December 2019 в 11:15

По моему скромному мнению, prefork+mod_per был бы намного быстрее, но выяснение в mod_perl списке рассылки даст Вам более точный ответ

1
ответ дан 3 December 2019 в 11:15

Просто некоторая дополнительная информация, мы просто вывели mod_perl на Win32 и переключили на PSGI использование Plack. Существует слой совместимости для CGI:: Приложение это работает очень приятно на нас. Катализатор переключает / переключенный на PSGI также.

0
ответ дан 3 December 2019 в 11:15

Modperl - идеальный адаптер для Catalyst, точно так же, как Modpython и Modwsgi для Django, а modphp для Cakephp, тогда как Modruby обсуждается как лучше или хуже, чем cgi, fcgi и (Modrails / Modpassenger / Modlocomotive) предназначены для Rails, особенно при использовании потокового режима (но есть Modrake и проксирующий сервер приложений Mongrel в качестве альтернативы). Чтобы избежать недостатков и получить только преимущества, всегда используйте разветвленный режим. Я имею в виду только mvc других языков программирования, которые вдохновлены рельсами: например, Catalyst, Django, Cakephp и Rails.

На мой взгляд, лучше всего использовать многоформатный режим mpm-itk, за которым следует многопоточное событие mpm. -mode, затем идет одиночный разветвленный mpm-prefork-mode, и, наконец, идет однопоточный mpm-worker-mode.

Я обнаружил, что для некоторых языков программирования их соответствующие адаптеры apache2, такие как mod-php и mod- tcl, в частности, работает только в режиме prefork и даже не в режиме itk, тогда как mod-ruby все еще находится только в linux-apache2 и еще не превратился в windows-apache2.

Но, к счастью, mode-perl, mod-python , и mod-ruby более универсальны и могут работать во всех четырех режимах - режиме libapache-mpm-worker, режиме libapache-mpm-prefork, режиме libapache-mpm-event и режиме libapache-mpm-itk. Это хорошая новость для пользователей perl, python и ruby, но, конечно, даже в случае использования всех трех адаптеров разветвленный режим быстрее, универсальнее и бесконфликтен, чем многопоточный режим. И одно можно сказать наверняка: все эти адаптеры предназначены для работы быстрее, чем cgi, и, возможно, так же быстро, как fcgi (fastcgi).

Я использую режим itk (многофакторный), даже если это означает, что мне будет не хватать некоторые программы, которые требуют режима предварительной вилки (одиночного разветвления).

Я всегда предпочитал itk-режим в Ubuntu и никогда не устанавливал приложения, которые требуют предварительный режим в качестве предварительного условия. Некоторые дистрибутивы, такие как Sabayon, являющийся разновидностью Gentoo, по умолчанию устанавливают apache2 в рабочем режиме. Но мы всегда можем изменить это, отредактировав файл конфигурации системы apache и раскомментируя строки, содержащие itk (и прокомментировав строки для worker ), с последующей перекомпиляцией и перезапуском apache2. Так что все, что применимо к Sabayon, должно быть применимо и к Gentoo. Sabayon и Gentoo устанавливают все программное обеспечение, зависящее от prefork или worker, но при их настройке должны запускаться только те, зависимость которых выполняется системой.

Очень сильно пострадали некоторые из фреймворков на основе php (требуется для систем управления контентом), которые не работают. Единственный фреймворк php, который может работать в режиме itk, event (и, возможно, worker), - это cake-php, который, к сожалению, очень мало используется. Я думаю, что даже более известный фреймворк horde (php) тоже должен работать. Таким образом, переход в режим событий apache2 (многопоточный) должен решить большинство проблем. Но apache2 очень гибкий и настраиваемый для modperl (и, следовательно, perl-Catalyst mvc), modpython (и, следовательно, django mvc), но windows-modruby еще не стабилен, его эквивалент известен как modpassenger (modpassenger - linux, modrails - windows, locomotive - macosx) существуют на abyss-webserver или lighttpd-webserver (и, следовательно, rails mvc).

Меры предосторожности: Если система - это windows, то перед установкой MVC Perl / Python / Ruby / PHP / Tcl, убедитесь, что все настроено только с одним единственным веб-сервером - либо apache2, либо lighttpd, либо, возможно, cherokee. Если вы собираетесь использовать rails с abyss, modrails, убедитесь, что конфигурация drupal / jhoomla с wamp, modphp не должна присутствовать - в противном случае иногда windowsxp ' Веб-технология Windows по-прежнему вращается в основном над меньшим количеством игроков и некоторыми технологиями с открытым исходным кодом после большой тяжелой работы.

1
ответ дан 3 December 2019 в 11:15

Теги

Похожие вопросы