apache 人气节节上升
其实在 Linux (或其它 UNIX-Like 的 OS 中),有好几个不错的网页服务器,如 apache 、 Zeus 、 Netscape ( SunONE )、 Notes/Domino… 等。其中, apache 最受外界瞩目。
apache 最早是美国伊利诺大学里国家超级电算应用中心( NCSA )的 Rob McCool 开发出来的,当初取这个名字以尊崇印地安人的高超战技与坚忍不拔的毅力。 Rob1994 年离开 NCSA 后,由 8 位热心的 apache Group 成员继续维护,之后又正式成立了 apache Software Foundation 。 apache 是目前市占率最高的网页服务器。
目前几乎所有的商用 Linux 操作系统已事先内建( bundle )了 apache ,当然使用者也可自行下载 原始程序 ,然后自行编译再进行安装。
如果选择自行编译并安装,初学者最常碰到的问题就是跟原有的档案搞混,而得出一些莫名其妙的结果。建议在编译时,特别小心路径处理,或者干脆先把原有的 apache 移除掉(如 rpm -e apache ),再编译 apache 程序。
模块化设计与开放
我个人认为, apache 最棒的地方在于其模块化设计与开放,这具体表现在几个方面:
· 效能
在 apache1.3 时,原始程序是由 25,000 个 C 程序组成。由于公开原始码,许多人贡献心力帮忙程序除错,而使该软件达至最佳化,因而效能表现特佳,也十分稳定。另一项好处是使用者可选择自已需要的模块再行编译,用不上的可不用编译或挂载,如此一来, apache 执行效能可获得进一不的提升。例如,使用者可在 httpd.conf 档案中设定,决定使用 mod_php 、 mod_perl ,或是 mod_SSL 等模块。
· 安全性
在密码认证支持方面, apache 内建 Basic 、 Digest 两种选择。密码储存部分, apache 也早已支持 LDAP 、 MySQL 及 PostgreSQL 等,也允许使用者自行撰写密码认证的模块。
· 网址自动检查拼字
网友常常打了一长串的网址( URL )后只因少一个字;或多了一个字,或者是大小写搞错,结果经常找不到网页。 apache 有一个很棒的功能就是可以自动检查拼字。不过,使用者必须手动启动( speling_module )。
· 自行修改核心
我曾经遇一家客户,这家公司的首页不是一个静态的网页,而是一个用 C 写的 CGI 程序,每次有人浏览这个网站时,可想而知的,该 CGI 程序就得自数据库抓取一堆数据。该网站经常当机,问题其实在于该 CGI 程序的负担太重,却又不愿意放弃这个功能。
后来,我们协助这家公司将该 CGI 功能移至 apache 的核心模块之一( mod_perl )后,发现执行速度快了十多倍,而且当机频率也大幅降低。举例来说,当你使用数据库中内建的 MAX 函式,绝对会比自己另外写程序来找出最大值快得许多。
还有另一个案例是我们帮忙一家客户在 mod_perl 模块中整合某一个程序,将一个目录中提供下载的档案,全部都自动压缩成 zip 档案,以大幅减少客户下载的时间。其实,可以在 apache 上发挥创意的地方太多,这只是其中一例。反观这些应用,在没有开放原始码的 IIS 中,是非常难以达成的。
· 内建 Proxy 功能
apache 也有内建的 Proxy 功能,您可以自动启动相关模块( proxy_module )。