Журнал Системный Администратор, Август 2007

Журнал Системный Администратор

Август 2007

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке


Оцениваем возможности mod_python и mod_perl

Алексей Мичурин

Модули сервера Apache mod_python и mod_perl позволяют встроить интерпретаторы языков Python и Perl непосредственно в сервер и значительно увеличить производительность веб-приложений. Perl – старый и хорошо зарекомендовавший себя игрок на этом рынке. Но в последние годы Python занял уверенные позиции в области веб-разработок и привлекает всё большее внимание.

Что это такое и о чём статья

Прежде всего я хотел бы оговориться. Во-первых, статья не является руководством по mod_perl или mod_python. Пожалуйста, не рассматривайте её с этой точки зрения. Статья является обзором возможностей этих средств, причём обзором с высоты птичьего полёта. Я буду всячески избегать углубления в детали (хотя полностью избежать деталей, конечно, не удастся). И во-вторых, я ни в коем случае не хочу разжигать религиозные войны поклонников тех или иных языков. Полагаю, что культурные люди используют во время еды и ложку, и вилку в зависимости от поданного блюда, а не спорят, какой из этих приборов лучше подходит для ковыряния в ухе.

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

Веб-программирование служит одной цели: формированию HTML- или XML-документов и обмену ими по протоколу HTTP. Чаще всего речь идёт о формировании HTML-страниц, но не следует забывать о RSS, SOAP и других способах обмена данными по HTTP.

Чтобы сформировать динамический контент, сервер запускает некую программу, результат работы которой отдаётся посетителю веб-ресурса.

Эта программа может быть полноценной, самостоятельной программой, которая запускается по требованию сервера и «умеет» принимать данные от него и отдавать ему результат работы. Протокол этого обмена называется Common Gateway Interface, а такую программу называют cgi-приложением.

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

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

Модули mod_python и mod_perl, как вы уже, наверное, догадались, и являются модулями сервера Apache для встраивания в сервер интерпретаторов Python и Perl соответственно.

Оставшая часть статьи доступна только подписчикам. Если вы желаете продолжить чтение этой статьи, то вам необходимо подписаться на эту статью или весь номер.

Подписаться на весь номер

Зарегистриванные пользователи, пожалуйста следуйте по этой ссылке