一些可以降低服务器负载的方法:
不要使用Apache来做静态内容服务,或者至少和动态服务使用不同的Apache实例。流行的替代品有Nginx(http://www.esi.org)和lighttpd(http://www.lighttpd.net).
1、使用缓存代理服务器,比如:Squid或者Varnish,防止所有的请求都要到达Web服务器。这个层面即使不能缓存所有页面,也可以缓存大部分页面,并且
使用ESI(Edge Side Includes,参见http://www.esi.org)这样的技术来将部分页面的小块的动态内容嵌入到静态缓存部分。
2、对动态和静态资源都设置过期策略。可以使用Squid这样的缓存代理显示历史内容过期。维基百科就使用了这个技术来清理缓存中变更过的文章。
有时也许还需要修改应用程序,以便得到更长的过期时间。例如:如果你告诉浏览器永久缓存CSS和JavaScript文件,然后对站点的HTML做了一个修改,
这个页面渲染将会出问题。这种情况可以为文件的每个版本设定唯一的文件名。
如:你可以定制网站的发布脚本,复制CSS文件到/css/123_frontpage.css,这里的123就是版本管理器中的版本号。对图片文件的文件名也可以这么做-----
永不重用文件名,这样页面就不会在升级时出问题,浏览器缓存多久的文件都没有问题。
有一本关于如何优化Web应用的很不错的书----High Performance Web Sites,作者是Steve Souders(O'Reilly)。尽管书中大部分内容是从客户的角度来看如何让Web站点运行更快,但是参考他的建议也是有利于你的服务器。Steve后续的一本书Even Faster Web Sites 也很不错,值得阅读。