两种前端架构:
lvs -> nginx前端代理 -> squid缓存
lvs -> squid前端缓存 -> nginx中层代理
squid在前面的优点:
Squid作纯代理比较稳当
前端少一级代理,响应速度会快,出问题的可能性要小
功能有限,不会常被调整
容易为人接受,只是为了扩充功能而增加中层代理
一般的配置简便,比如增加一个二级域名,只需配置一个指向。
增加的nginx可扩展功能,增加对应用服务的负载均衡等。
squid在前面的缺点:
squid支持的负载均衡配置复杂
容灾问题
更新缓存要遍历所有机器
squid只支持单cpu,所以浪费cpu
nginx在前面的优点:
分流、负载均衡功能强大,可以细致定义
可精细定制access_log
nginx的错误日志更详细
可让squid只缓存无压缩版本,由nginx压缩,这样可优化squid缓存容量
nginx可分担部分无实时性要求的缓存
nginx在前面的优点:
nginx目前还有部分bug。
功能强,所以可能经常被调整
nginx代理用的短链接方式
单机上安装nginx+squid的cpu消耗比纯squid和纯nginx之和要大一倍,但也不算高
容易遭到质疑,不易被接受。