Apache服务器优化方法小结

2020-01-30 12:33:26王旭

Indexes 如果 DirectoryIndex (如 index.html) 在请求的目录没存在的话,按一定方式显示目录内容列表.这个用的太多了,开启吧.
FollowSymLinks 最好关掉符号连接,Apache就必须执行额外的系统调用以验证符号连接。文件名的每一个组成部分都需要一个额外的调用.当打开这个选项时,Apache将检查每个请求中是否包含对符号连接的引用,这将对请求中包含的每个路径调用一次lstat()系统调用。在请求"/index.html"时,Apache将对"/www"、"/www/htdocs"、"/www/htdocs/index.html"执行lstat()调用。而且lstat()的执行结果不被缓存,因此对每一个请求都要执行一次。除非你准备使用符号连接,否则用 Options -FollowSymLinks 来关掉它。 用一个破折号引导,从而禁用此指令。
AllowOverride  这个选项,是开启如包括htaccess来进行权限控制,Apache必需首先在当前目录中查找是否存在这个文件,如果存在就解析这个文件并在当前目录中应用文件中的设置。更坏的是,Apache不仅要查看当前的目录,还要查看当前目录的所有上层目录是否包括htaccess文件以根据所有这些文件最终确定设置。例如请求"/index.html",则Apache会试图打开"/.htaccess"、"/www/.htaccess"、"/www/htdocs/.htaccess"。其解决方法 AllowOverride None来关掉,当然,这样做静态化就只能写在VH的配置中了,禁用后设置文件仅在服务器启动时解析一次 。

DirectoryIndex index*,不要使用通配符,全用完整列表,如:DirectoryIndex index.cgi index.pl index.shtml index.html。当然,最少好些,明确的指定设置文件列表,放在最前最合理。

启用了持久链接Keepalive,这样子进程将保持忙碌状态以等待被打开连接上的新请求。如果开启KeepAliveTimeout的默认值被设置为5秒。最好不要大于60秒。

禁用日志
写入日志信息是一个很花费时间的工作,尽管Apache保持日志文件的打开状态以节省打开文件的时间,但仍然得花费不少的时间。如果没有必要存储日志信息,你可以关闭这个选项以节省出更多的处理器时间,只需要在设置文件中把日志那一行注释掉就可以关掉它。当然,实在需要,最要加入另一个单盘来管理日志存储.


静态内容方面
如果你的WEB服务器使用了大量静态内容或者你分别用两个WEB服务器处理动态和静态内容,那么你现在的主要目标就是缩短服务器发送被请求内容的响应时间,最简单的方法就是使用mod_cache缓存模块。你可以使用mod_disk_cache和mod_mem_cache来分别提供基于磁盘的缓存和基于内存的缓存。

优化动态内容
动态内容可能是所有WEB服务器中最消费时间的部分,特别是使用CGI的时候,一个简单的程序都可能会把响应时间增加好几秒。