在高负载网站实践中,把静态内容与动态内容分离已经是比较通用的做法了,在Linux下,比较常用的框架是Lighttpd+Apache+Memcached+Squid。
其中我们让Apache监听80,作为主站点;Lighttpd监听81,处理静态图片。Apache通过rewirte把静态内容交给Lighttpd处理。当然也可以仅使用Lighttpd作为前端,但Lighttpd处理PHP还不太稳定。
其他部分,Memcached负责处理缓存、Squid做集群反向代理降低负载。
以上都是基于Linux的,但是有没有基于Win下的呢?有一些,但都没有成型,因此我在此呼吁博客园的大牛们,Win下的开源社区不要只搞出点什么博客、网站啥的,也走点高端路线,为什么我们就不能也搞出一个Win下的Lighttpd来?
我对博客园的兄弟有信心。
参考:
样例1:http://www.linuxsir.org/bbs/thread297101.html(其中附件下载)
样例2:http://www.codeproject.com/KB/IP/high-performance-server.aspx
样例3:http://www.codeproject.com/KB/IP/w3mfc.aspx
---------------------------------2009.04.14思路------------------------
我的构想是:
1、使用IOCP构建一个残缺的HTTP服务
2、该服务仅处理静态内容,支持设定文件服务端过期时间
3、支持防盗链
4、不支持以上描述外任何多余的内容
这样的话会极大的提高静态文件访问的吞吐,动态内容交给IIS处理,也降低了IIS的压力