Чому mod_perl, perl

У цій статті я познайомлю вас з основами mod_perl, доб'юся того, що ви самі захочете спробувати попрацювати з ним і приведу в якості прикладів кілька відомих сайтів, створених за допомогою mod_perl під Apache.







Що таке mod_perl?

mod_perl є серцем проекту інтеграції Apache / Perl, що об'єднує в собі всі можливості мови програмування Perl і web-сервера Apache.

З самого початку Apache був створений таким чином, щоб ви могли розширювати його можливості додаючи "модулі". Модулі можуть робити все необхідне, як, наприклад, переписувати запити з HTTP, обмежити доступ до певних сторінок і виконувати пошук в базі даних. Зазвичай модулі написані на C, з яким іноді важко працювати. mod_perl - це модуль, який дає вам можливість робити всі ці речі і, більш того, використання Perl робить процес розробки більш швидким, ніж на C. Apache є найбільш поширеним в інтернеті web-сервером, а mod_perl - одним з найбільш широко пріменямий модулів для розширення його можливостей.

Чому mod_perl отримав таку широку популярність?

Якщо вам подобається Perl і ваш улюблений web-сервер - Apache, то ви полюбите mod_perl з першого погляду. А як тільки ви поробуете його в дії - ви більше не будете оглядатися по сторонах, тому що зрозумієте: в mod_perl є все, що вам потрібно. І навіть якщо ви раптом виявите, що в ньому чогось не вистачає - тільки скажіть. Перш, ніж ви встигнете порахувати до трьох, хто-небудь вже встигне створити це для вас. І, звичайно, вам захочеться віддати що-небудь натомість. У підсумку ви додасте щось своє - це заощадить масу часу іншим членам спільноти mod_perl, і вони зможуть створити ще більше речей для потреб інших користувачів.

Така виходить картина: mod_perl збільшує можливості користувачам, які в свою чергу збільшують можливості mod_perl, який в свою чергу збільшує можливості користувачів, які в свою чергу. Це так само просто, як ядерна реакція, яку ви проходили в школі (або ще будете проходити).

Використовуючи mod_perl можна писати модулі Apache цілком і повністю на Perl. Це дає вам можливість легко робити такі речі, які є складними або просто неможливими для звичайних програм на CGI, як наприклад обробка запитів, написання аутентифікації і обробників логів.

Відбувається велика економія часу при запуску і компіляції. Інтерпретатор для Perl вбудований в сервер значно скорочує витрату часу, не витрачаючи його на запуск зовнішнього інтерпретатора при кожному запиті HTTP, для якого необхідно використання коду Perl. Принаймні таку важливість представляє кешування коду: модулі та скрипти завантажуються і компілюються тільки один раз - в момент першого запуску сервера. І залишок всього життя сервера управління скриптами відбувається з кешу, так що сервера залишається тільки запустити прекомпілірованние код. У більшості випадків це так само швидко можна реалізувати, як запуск компілювати програм на C.







Це невеликий виграш у часі при запуску. Зокрема, під mod_perl немає необхідності запускати індивідуальний процес для кожного запиту, як це часто робиться в інших розширеннях для web-серверів. Найбільш поширений механізм розширень такого роду - Common Gateway Interface (CGI) - повністю замінений кодом Perl, який займається обробкою процесу запиту в фазі генерування відповіді. Для цих цілей існують два взаємопов'язаних з mod_perl цільових модуля: Apache :: Registry, який може непомітно запускати існуючі немодифіковані скрипти Perl CGI і Apache :: PerlRun, який виконує схожу задачу, але дає вам можливість запускати скрипти в якійсь мірі "брудніші ".

mod_perl дає вам можливість налаштовувати сервер Apache і програми обробки на Perl (використовуючи для цього директиву PerlSetVar і секції . При цьому адміністрування сервера з безліччю віртуальних хостів стає гранично простим. Гей, ви навіть можете задати ваші власні директиви конфігурації.

Наскільки швидким і стабільним є mod_perl?

Кожну секунду кожного дня тисячі web-сайтів по всьому світу використовують mod_perl для управління сотнями тисяч web-сторінок. Apache і mod_perl за оцінками є одними з кращих коли-небудь взагалі написаних програм. Звичайно, вони продовжують розвиватися і доопрацьовуватися, але вам не доводиться працювати з "напівфабрикатом" - для ваших сайтів ви можете використовувати стабільний продукт і надати іншим можливість тестувати нові версії.

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

Як багато сайтів працюють з mod_perl для web-сервера Apache?

Повний вперед

Ви, мабуть, схвильовані виходом версії Apache 2.0, нового покоління найкращого з web-серверів. Головними особливостями web-серверів нового покоління є багатопотокові процеси, які підвищать можливості сервера до розширення, і, звичайно, довгоочікуваний рівень фільтрації.

Ви, мабуть, не менше стурбовані з приводу недавнього виходу версії Perl 5.6, чиєю головною особливістю є (майже) стабільна підтримка потоків, що вразила вас в попередній версії Perl, але де вона була занадто нестабільною.

Ви запитаєте, як це все вплине на mod_perl? mod_perl 2.0 зараз ще розробляється і вбере в себе всі переваги нових версій Apache і Perl. Найважливішим удосконаленням буде зменшення розміру процесів - конструкція дерева операцій Perl буде практично повністю розподілена між потоками одного процесу.

Зрозуміло, навколо нас відбувається досить несподіванок. Пройде немало часу, перш ніж всі наші програми зможуть використовувати переваги багатопоточності. Головна причина в тому, що більшість модулів Perl доступних на CPAN не призначені для надійної роботи потоків. Але не треба падати духом. Ви можете відключити використання потоків в не призначеному для надійної роботи декількох потоків Perl-коді, або в такому, який використовує модулі, не призначені для багатопотокового роботи.

Хочу mod_perl прямо зараз, де його взяти?

Мені подобається mod_perl і я хочу знати, хто створив цей прекрасний продукт!

Ну, в усьому винен Дуг МАКІЧ (Doug MacEachern) :). Він - той самий хлопець, який подарував громаді mod_perl. Він є Лінусом для проекту mod_perl.

Але, як вам відомо, в великому співтоваристві завжди знайдуться люди, готові допомогти, і існує ціла група розробників з усього світу, що створюють патчі для mod_perl, розробляють для нього цілі модулі на Perl, перевіряють сервер на наявність помилок і захищають його. Боюся, що список що беруть участь у справі розробників вийде занадто довгим, щоб привести його тут. Але ласкаво просимо в лист розсилки - і ви зможете побачити всіх цих людей в дії. Обіцяю, ви не пошкодуєте, особливо якщо хочете дізнатися більше і не тільки про mod_perl. Дивіться самі.

Взяти участь







Схожі статті