Mod perl

mod_perl — додатковий модуль для вебсервера Apache, що інтегрує інтерпретатор мови програмування Perl.

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

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

Приклад використання

Приклад динамічног конфігураційного файлу вебсервера Apache

<Perl>
my $host = 'example.net';
push @{$VirtualHost{'*:8080'}}, {
    ServerName                      => $host,
    DocumentRoot                    => '/var/www/'.$host,
    PerlSwitches                    => '-Mlib=/var/www/'.$host.'/lib',
    PerlOptions                     => '+Parent -ParseHeaders',
    Location => {
        '/' => {
            SetHandler              => 'perl-script',
            SetInputFilter          => 'apreq2',
            PerlResponseHandler     => 'Index'
        }
    }
};
</Perl>

Приклад обробки запиту для вище зазначеного конфігураційного файлу

package Index;

use Apache2::Const qw/OK/;

sub handler {
    my $r = shift;
    $r->content_type('text/html');
    print 'Hello world';
    return OK;
}

1;

Посилання

  • головний сайт [Архівовано 17 червня 2019 у Wayback Machine.](англ.)

Література

  • Practical mod_perl [Архівовано 3 травня 2019 у Wayback Machine.] is a complete book available online.(англ.)
  • mod_perl Developer’s Cookbook [Архівовано 26 червня 2019 у Wayback Machine.] with sample chapters.(англ.)
  • п
  • о
  • р
Apache Software Foundation
Основні проєкти
ActiveMQ · Airflow  · Ant · Apache HTTP Server · APR · Apache Beam[en]  · Bloodhound  · Buildr · Camel · Cassandra · Cayenne · Chemistry  · CloudStack  · Cocoon · Commons · Cordova  · CouchDB · CXF · Deltacloud · Derby  · Directory · Excalibur · Felix · Flex  · Forrest · Geronimo · Gump · Hadoop · iBATIS  · Isis  · Jackrabbit · James · Lenya · Lucene · Maven · mod_perl · MyFaces · OFBiz  · OpenEJB · OpenJPA · OpenNLP  · OpenOffice · POI · Qpid · Rave · Roller · Sling · SpamAssassin  · Spark  · Sqoop · Stratos  · Struts  · Subversion  · Tapestry  · Tika · Tomcat · Traffic Server · Tuscany · Velocity · Wicket · XMLBeans[en]
Інші проєкти
Jakarta Project · Apache XML · Apache Incubator
Підпроєкти
BCEL · BSF · Cactus · Chainsaw · HBase · JMeter · Xerces · Batik · FOP · Log4j · XAP · River · ServiceMix · Log4Net · Abdera · Ivy · ODE · JSPWiki · Wink · Solr
Інкубатор
MXNet  · OpenMeetings  · Superset
Колишні проєкти (Attic)
Beehive · Harmony · HiveMind · Slide · Shale  · Wave
Ліцензія: Apache License · Сайт: http://apache.org/