安装这些模块,以改善Apache Web服务器(1)


Apache依然是世界上最受欢迎的Web服务器,这一方面归功于数量众多的功能强大的模块,它们可以协同运行,增强这款Web服务器的核心功能。本文介绍了一些实用的Apache模块,它们可以为你的Web服务器改善性能、内容分发和总体安全。

改善性能的模块

虽然最新版本的Apache本身运行良好,但是你可以通过部署诸多模块——这些模块可压缩输出、消除不必要的载荷以及优化HTML和CSS代码,优化这款Web服务器,从而减少耗用资源、改进内容分发。

默认情况下,在CentOS中,Apache在预派生(prefork)模式下运行其多路处理模块(MPM);在这种模式下,父进程负责派生足够多的子进程,以满足所有远程客户端试图访问服务器的要求。不过,按照客户端的需要动态管理进程不是非常高效,那是由于每次开始和终止操作很花时间和资源。ModPrefork解决了这个不足,它让你可以为等待客户端请求的备用Apache子实例配置最小(和最大)数量。 不过,这项功能不够灵活和敏捷,无法满足请求偶尔出现峰值的繁忙网站的需要。

ModWorker解决了ModPrefork的性能问题,它使用线程来满足大量请求的需要,耗用的系统资源比较少。想在CentOS下启用ModWorker,编辑文件/etc/sysconfig/httpd,去掉HTTPD=/usr/sbin/httpd.worker这一行的注释。然后运行命令service httpd restart,重启Apache。想确认Apache在什么模式下运行,请使用命令apachectl –l,列出Apache所有已装入模块、寻找worker.c。

遗憾的是,ModWorker并非与所有Apache模块兼容,包括诸如ModPHP之类的常见模块。在启用它之前,你应该检查兼容性,需要的话还要另辟蹊径。比如说,要是你同时需要ModWorker和PHP,就可以使用Mod_FastCGI代替ModPHP。

借助ModPagespeed优化内容

一旦你优化了Apache的服务器端,就可以开始改进内容分发了。ModPagespeed(http://code.google.com/p/modpagespeed/)是由谷歌开发的第三方、一体化的优化模块,它使用ModDeflate来改写和压缩输出,从而提供一种更快速的客户端体验。它会自动运用来自PageSpeed(https://developers.google.com/speed/pagespeed/)的运用最佳实践,PageSpeed是可以用来优化网页性能的一套工具。虽然ModPagespeed仍正式处于测试版状态,但它是个成熟的项目。如果使用ModPagespeed,你就可以避免迫使开发人员和设计人员手工优化HTML、CSS和JavaScript代码以及图像。查看该模块的功能页面(http://www.modpagespeed.com/),即可了解更多信息和有用的比较。

你可以从源文件或通过二进制程序包来安装ModPagespeed。至于CentOS,你可以使用来自ModPagespeed下载页面(https://developers.google.com/speed/pagespeed/)的官方安装程序包。一旦你下载了与你的CentOS架构(32位或64位)对应的程序包,运行命令rpm -ivh mod-pagespeed*.rpm来安装它。重启Apache,并运行命令apachectl -t -D DUMP_MODULES,确保ModPagespeed已安装和装入。在这个命令的输出中,你应该能在所列的模块当中找到pagespeed_module。

接下来,打开配置文件/etc/httpd/conf.d/pagespeed.conf,检查所有的可用选项。在Allow from 127.0.0.1后面添加新的一行,让你的本地客户端IP地址出现在命令中;比如说,如果你的IP地址是192.168.0.2,就添加Allow from 192.168.0.2。一旦你重新装入Apache,就能够在http://yourserverip/mod_pagespeed_statistics处看到ModPagespeed的统计信息。这让你可以更快速地了解它,看到优化后的结果。


相关内容