почему mod_perl?

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

что такое mod_perl?

mod_perl - это сердце проекта по интеграции Apache и Perl, который предоставляет всю мощь языка программирования Perl и веб-сервера Apache. С самого начала Apache разрабатывался так, чтобы вы могли расширять его, добавляя модули. Модули могут делать все, что вы захотите, например, переделать HTTP-запросы, ограничить доступ к определенным страницам или выполнить поиск по базе данных. Модули обычно пишутся на С. mod_perl - это модуль, который позволяет вам делать все эти вещи, используя Perl - тем самым делая разработку гораздо быстрее, чем на С. Вобщем, Apache - наиболее популярный веб-сервер в Интернет, a mod_perl - один из самых популярных модулей для расширения его возможностей :)

почему mod_perl столь популярен?

Если вы любите Perl и ваш любимый веб-сервер - Apache, то вы полюбите mod_perl с первого взгляда. После того, как вы попробуете его в действии, вы больше никогда не откажитесь от него - вы поймете, что mod_perl это все, что вам надо. Даже если вы не найдете что-нибудь, просто расскажите об этом. И до того, как вы успеете сосчитать до трех, кто-нибудь уже сделает это для вас. Что, безусловно, заставит вас захотеть сделать что- нибудь в ответ. Тем самым вы внесете свой вклад, и это сохранит время для огромного сообщества mod_perl для того, чтобы они могли создать больше вещей для общего пользования.
Как уже было сказано, с помощью mod_perl можно писать модули Apache. Он позволит вам легко делать вещи, которые гораздо сложнее или даже невозможно реализовать с помощью обычных CGI-программ, например, выполнение подзапросов, написание собственных обработчиков авторизации и логирования.

Основные достоинства mod_perl - это мощь и скорость. Вы получите полный доступ к внутренним механизмам веб-сервера и можете работать на любом этапе обработки HTTP-запросов. Это позволит вам вносить изменения на различные этапы обработки запроса; например, преобразование URI файла, идентификация, генерация ответов сервера и логирование.

Большие преимущества mod_perl дает при запуске и во время компиляции. Наличие интерпретатора Perl, встроенного в сервер, позволяет избежать затраты времени на запуск внешнего интерпретатора для каждого запроса, которому необходимо выполнение Perl-кода. Не менее важно кеширование кода: модули и скрипты загружаются и компилируются только единожды, при старте сервера. Затем, для уменьшения нагрузки сервера, скрипты обрабатываются из кеша, а серверу остается только выполнить подготовленный (pre-compiled) код. Во многих случаях, это происходит также быстро как и выполнение скомпилированных программ на С.

При исполнении Perl-кода происходит минимальная задержка. В частности, в mod_perl не требуется запуск отдельных процессов на каждый запрос, что часто делается в других модулях веб-сервера.
mod_perl позволит вам сконфигурировать ваш сервер Apache и обработчики Perl (используя директиву PerlSetVar). Это делает администрирование серверов с множеством виртуальных хостов и сложной конфигурацией простым делом. Вы даже можете определить ваши собственные директивы!
насколько быстр и стабилен mod_perl?

Многие люди спросят "Насколько mod_perl повысит производительность?". Все зависит того, что вы собрались делать с помощью mod_perl и, возможно, от того, кто именно об этом спрашивает ;). Некоторые опубликованные отчеты заявляют о росте производительности от 200% до 2000%. Лучше всего, однако, опробовать модуль самому и попытаться оценить прирост производительности доступными вам средствами.

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

Я хочу показать вам несколько наиболее загруженных и популярных сайтов, использующих mod_perl. Тысячи слов не могут заменить реального опыта. Посетите эти сайты и почувствуйте разницу. Они убедят вас, что mod_perl - это вещь!
- ValueClick (www.valueclick.com) - серверы на 20 машинах с более чем 70 миллионами запросов в день. Каждый ответ сервера динамический, со всевозможными расчетами, сохранениями, логированием. Вся программная часть написана на Perl.
- Singles Heaven (singlesheaven.com) - сайт-клуб с более чем 35000 членами. Сайт использует mod_perl, DBI, Apache::DBI (предоставляющее устойчивое соединение с БД) и MySQL. Скорость просто огромная, чат на mod_perl - одно удовольствие. Каждая страница генерируется с
использованием около 10 SQL-запросов, что позволяет делать множество динамических проверок на каждой странице - например проверка новых писем, отображение активных пользователей и многое другое. Вы не почувствуете выполнение этих запросов - скорость исполнения будет как у скрипта "Hello, World" :).
- Internet Movie Database (www.moviedatabase.com) - серверы с более чем 2 миллионами просмотрами в день. Весь поиск по базе данных
обрабатывается на Apache с помощью mod_perl. Каждый запрос проходит несколько обработчиков mod_perl, а на выходе форматируется на лету также с помощью mod_perl SSI для вставки рекламных баннеров и получения различных вариантов внешнего вида сайта в зависимости от используемого адреса (hostname).
- CMPnet (www.cmpnet.com) - технологическая информационная сеть, обслуживающая более 600 тысяч просмотров страниц в день.
- CitySearch.com (www.citysearch.com) - онлайн-гиды по более чем 100 городам всего мира. Citysearch.com помогает людям найти и спланировать то, что они хотят посетить, а также подготовится к путешествию, предлагая такие услуги, как заказ билетов, бронирование номеров и поиск ресторанов. Их трафик превышает 100 миллионов просмотров страниц в месяц.

А сколько всего сайтов используют Apache с установленным mod_perl?

График на страницесайтпоказывает, что число сайтов, использующих mod_perl, составляет 4,567,088. Несомненно, что число явно недооценено, проверялись только серверы на 80, 81, 8080 и некоторых других портах. Если сервер работал на других портах, то он не подсчитывался, хотя владелец мог сам добавить его в базу. Из этого же графика четко видно, что количество сайтов, использующих mod_perl, с некоторыми временными спадами в целом имеет возрастающую тенденцию.

дорога вперед
Вы вероятно в курсе насчет релиза Apache 2.0 - нового поколения самого лучшего веб-сервера. Главным достоинством нового поколения веб-серверов являются многонитевые процессы, которые делают сервер более гибким. Также некоторым из вас, наверное, мало известно о релизе Perl 5.6, главным достоинством которого является стабильная поддержка нитей, что хоть и было реализовано в предыдущей версии Perl, но довольно невыразительно. Кстати да: вы верите в совпадения? И Perl 5.6 и Apache 2.0 были выпущены в одну и ту же неделю. Выглядит очень подозрительно ;). Если вы знаете больше об этом очевидном заговоре, дайте мне знать, пожалуйста.
Конечно, пройдет некоторое время, перед тем, как все наши приложения смогут воспользоваться достоинствами нитей. Главная причина этого в том, что большинство доступных модулей нестабильны при работе с нитями. Но не стоит отчаиваться. Вы можете отключить использование нитей для Perl- кода или для модулей, которые нестабильно работают с нитями.

я немедленно хочу mod_perl, где мне его достать?

Домашняя страница mod_perl - perl.apache.org. C этого сайта вы сможете скачать последнюю версию mod_perl и различную документацию. Также там вы найдете коммерческие продукты и сторонние модули, прочитаете истории успеха и узнаете больше о mod_perl.
Также достаточно разумно подписаться на рассылку о mod_perl. Если вы хотите знать, что происходит с mod_perl, какие новые возможности разрабатываются, если вы хотите влиять, содействовать или просто помогать сообществу разработчиков, то вы не должны проигнорировать эту рассылку. Для подписки на рассылку просто отправьте пустое письмо на адрес modperl-subscribe@apache.org.

а есть ли книги или документация о mod_perl?

Линкольн Стейн (Lincoln Stein) и Даг МакИчерн (Doug MacEachern) написали книгу "Writing Apache Modules with Perl and C". Также вы найдете огромный список документации на домашней странице mod_perl.

я люблю mod_perl и хочу знать, кто написал сей великий бесплатный продукт?

Даг МакИчерн во всем виноват. :) Это тот парень, который дал mod_perl сообществу. Он - Линус проекта mod_perl ;).
Но, как вы знаете, в большом сообществе всегда есть люди, которые любят и могут помогать. Так образовалось ядро разработчиков по всему миру: кто- то разрабатывает сам mod_perl, кто-то модули для него, кто-то отлаживает сервер и занимается поддержкой. Я боюсь, что список разработчиков слишком большой, чтобы опубликовать его в полном объеме в этой статье. Но вы можете присоединиться к списку рассылки и увидеть всех этих людей в действии. Я обещаю вам, что вы не пожалеете о сделанном. До встречи в списке рассылки!



Стас Бекман (Stas Bekman), перевод ApacheDev.ru.


Сетевые решения. Статья была опубликована в номере 05 за 2005 год в рубрике software

©1999-2024 Сетевые решения