看这个图吧:
这个架构的优点:
1、可以使用nginx前端进行诸多复杂的配置,这些配置从前在squid是没法做或者做起来比较麻烦的,比如针对目录的防盗链。
2、nginx前端可以直接转发部分不需要缓存的请求。
3、因为nginx效率高于squid,所以某些情况下可以利用nginx的缓存来减轻squid压力。
4、可以实现url hash等分配策略。
5、可以在最前端开启gzip压缩,这样后面的squid缓存的纯粹是无压缩文档,可以避免很多无谓的穿透。
6、因为nginx稳定性比较高,所以lvs不需要经常调整,通过nginx调整就可以。
7、squid的文件打开数按默认的1024就绰绰有余,不过处理的请求可一个都不会少。
8、可以启用nginx的日志功能取代squid,这样做实时点击量统计时可以精确定位到url,不必要再用低效率的grep来过滤。
9、因为nginx的负载能力高于squid,所以在用lvs分流时可以不必分得特别均衡,出现单点故障的几率比较低。
目前这个架构还需要更详尽的测试,sudone.com当前是采用的这个架构搭建。
作者:Ayou