在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言Apache被许多大流量网站所嫌弃,但很多企业级的场景则更为适用。
Apache httpd 从 2.0 之后,已经不仅仅局限于一个 http 的服务器,更是一个完善而强大、灵活而健壮且容易扩展的开发平台。 开发人员通过定制 Apache 模块,可以几乎无限制的扩展 Apache httpd,使其更好的与实际应用场景匹配,而又无需考虑底层的网络传输细节。这样既可以提高开发效率,节省开发成本,又能充分利用 Apache 本身的健壮性及可靠性。 普遍意义上的理解,Apache的模块开发,分为两种途径:C、Perl。
Apache/Perl 集成计划, 将 Perl 程序设计语言的强大功能, 与 Apache HTTP 服务器 紧密地结合到了一起。 通过 mod_perl 模块, 可以完全使用 Perl 来撰写 Apache 模块。 此外, 服务器中嵌入的持久性解释器, 消除了由于启动外部的解释器为 Perl 脚本的启动所造成的性能损失,编码难度与普通CGI基本相同,运 行速度仅比API C略逊一些。
MOD_PERL技术的介绍MOD_PERL技术将PERL解析器编译到APACHE服务器中一起等待客户端请求。
配置完Apache和Perl模块后,可以用perlinfo函数查看系统环境相关变量。下图是在虚拟机中跑出来的效果,用的是XAMPP套件的老版本。 看到这图,您有何感想?是不是觉得太像phpinfo了,不!是phpinfo太像他了。
编写APACHE模块代码example.pm: package example; use strict; use Apache::Request; use Apache::Constants qw(:common); sub handler { my $r = shift; my $req = Apache::Request->new($r); $req->send_http_header('text/html'); $req->print('Hello World!'); return OK; }
PerlModule example; <LocationMatch "(service)$"> SetHandler perl-script PerlHandler example </LocationMatch>
有什么用其实这个话题是接续上篇文章 svn代码版本管理工具的,利用mod_perl 可以编写apache模块来实现自定义的authn与authz模块,以实现符合实际情况的鉴权功能。 |
请发表评论