技术开发 频道

让使用Apache的网站速度更快

实时监视日志

    使用apachetop命令行工具来显示apache服务器当前的运行状态,类似于Unix等系统下的top命令工具。对流量比较低的Unix-Apache网站也可以使用tail命令来记录实时日志信息,tail -f /logfile/。通过扫描错误日志文件中的记录,分析出恶意连接请求,常用的错误日志文件扫描工具有Logscan和ScanErrLog,可以分别从http://www.garand.net/security.php和http://www.librelogiciel.com/software/去下载这些工具。

将连接请求日志记录到数据库

    Apache本身没有将记录转发到数据库的功能,必须要第三方脚本和模块来支持。这里列举几个:mod_log_sql模块允许将连接请求直接记入MySQL数据库,然后用Apache LogView SQL工具来参看库中的记录;pglogd工具可以记录日志到PostgreSQL数据库中。

将日志文件转存和归档
CustomLog "|bin/rotatelogs /var/logs/apachelog 86400" common

    如果网站流量较高,日志文件很容易就会变得很大,需要进行转存和归档处理。转存日志文件时需要压缩和保存,在线进行这项工作可以使用Apache提供的rotatelogs来完成,类似工具还可以在http://cronolog.org/上找到。例子中用rotatelogs工具将每天的日志做了转存和归档处理,一天共有86400秒。查看Apache帮助文件可以了解更多的rotatelogs工具参数。注意如果rotatelogs工具所在的目录名含有空格,则需要用跳转符号\来指定。

IP地址和域名之间对应处理

    将HostNameLookups设置成on,那么日志记录中将显示来访者所在的域名,设置成on可降低服务器性能。为了解决这一问题,Apache提供了一个事后分析IP地址域名信息的工具logresolve,例如$ logresolve < access_log > resolved_log
如果用代理服务器或网关设备来完成的网站访问,Apache服务器将只能记录到代理服务器和网关的IP地址和域名。

如何自动启动Apache服务器

#!/bin/bash if [ 'ps -waux | grep -v grep | grep -c httpd' -lt 1 ]; then apachectl restart; fi

    在windows平台下以服务方式启动的Aapche遇到意外退出后可以由服务管理器自动自动,Unix平台下需要借助watchdog脚本来实现自动启动功能,watchdog程序专门用来监视其他程序的运行状态,发现被监视的程序退出或停止后可以重新将他们启动。例子中简单的linux脚本将监视系统的进程表,如果网站服务器httpd进程消失,则负责将它重新启动,使用该脚本的条件有2个,首先保证该脚本文件具备可执行权限,第二必须将该文件设置到cron文件中,使之可以在预定的时间间隔内运行,如果使用Solaris系统,需要将例子中的ps -waux改成ps -ef。用户可以访问http://perl.apache.org/docs/general/control/control.html网页发现更多高级的watchdog类脚本工具,大多数linux发行版自带一些用于Apache的脚本工具。

0
相关文章