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的时候,一个简单的程序都可能会把响应时间增加好几秒。 使用基于脚本的方案的一大好处是它们在Apache里装入了解释器,这就减少了执行时再装入解释器的时间,一些方案还把解析过的脚本缓存起来,这样下一次遇到同样的请求就可以直接执行而无需再次解析。当然也可以应用的服务分离,象使用php的fastcgi来在后面跑,前面给Web服务器. 对特定系统的调整优化很复杂而且很花时间,而且你需要调整特定的脚本以利用优化的成果。 不过对动态内容的优化效果是非常明显的,仅仅是把perl脚本的执行模式从CGI转到mod_perl就可以减少多达70%的执行时间,如果我们进一步,还可以使用到数据库的持久连接或在多次请求之间缓存信息,这对电子商务网站非常有用,它也减小了不同请求间重复装载信息的开销。 总的来讲,网站的动态内容脚本和CGI是影响网站性能的最重要方面(所以好的程序员很重要),如果你管理一个典型的Apache服务器你会发现Apache响应一个传入连接以及最后把内容发送给客户的所花费的时间是以毫秒记的,而等待所需数据资源的时间常常达到几秒钟。 其它优化 可以把 Apache(httpd)的优先级改为 -15,这已经接近上限(优先级从最高的 -20 到最低的 19)。可以从命令行使用这两个实用程序: * 要想停止现有服务并以优先级 -15 重新启动它,可以发出命令 nice -15 httpd * 要想避免停止服务,可以发出命令 renice -15 -p 1996 这里的差异是 renice 需要进程 ID(或 pid)。如上所述,可以使用 top 查明 pid。nice 和 renice 是很灵活的程序 配置mod_expires模块(这个非常有用的优化哦) mod_expires可以减少20-30%左右的重复请求,让重复的用户对指定的页面请求结果都CACHE在本地,根本不向服务器发出请求。除开用户有发送no-cache才会更新,但要注意更新快的文件不要这么做. (责任编辑:admin) |