Linux运维最佳实践读书笔记
第一章
- 使用NSCD构建域名解析缓存的好处:
- 优化DNS响应速度
- 减少DNS对外部网络的依赖
- 可以使用chroot对BIND进行安全加固
- BIND视图可以根据配置达到智能DNS的效果
第二章
关于缓存的技术,http的四个缓存控制字段
-
对比缓存:
If-Modified-Since: xxxx-xx-xx(时间)
If-None-Match:Etag(根据文件的大小和最后修改的时间戳生成)
当客户端发出的请求header中有上述字段,且在xxxx-xx-xx时间后未做修改或者Etag无变化,则服务端只需返回304 Notmodified即可,告诉客户端可以继续安心使用之前的本地缓存资源。 -
强制缓存
强制缓存流程
Expires:xxxx
Cache-Control:max_age=xxxx(s)单位是秒
服务器端发出header中包含上述字段,则客户端可以在xxxx之前直接使用之前本地缓存的资源不必再次发出请求。Expires是绝对时间由于客户端和服务端不一定使用相同的时间,所以推荐使用max_age作为相对时间来设置过期在xxxx秒内不需要再次请求。因此当两个字段同时存在时Cache-Control生效
[http缓存](http://www.361way.com/http-cache/5611.html)
协商缓存流程 -
squid优化
- 由于squid是单进程的,为了提高利用率可以单机部署多实例使用
- 为了提高缓存命中率以及后端的squid可以缓存不同的内容,推荐前端使用7层的负载均衡器并且使用url哈希的算法调度
。。。。
还有部分流媒体点播以及游戏客户端下载分发的架构部分暂时跳过了先留个坑
。。。。
第三章
关于负载均衡的介绍
- 二层负载均衡可以使用bonding网卡进行,可以满足以下需求:
- 目前单网卡一般是1000mbit的,但某些高峰时期会过gbit,这时使用万兆网卡明显不合适,所以可以把多张千兆网卡bonding到一起使用(有点类似磁盘阵列)
- 做到网卡的高可用,当A网卡的硬件故障时可以无缝使用B网卡
- bonding的模式介绍:
- 四层负载均衡特点:
- 模型简单,不需要care后端的业务逻辑。只需要做负载调度,网络转发,后端服务器健康检查
- 吞吐量大
- 应用范围较广
- 七层负载均衡特点:
- 如果是http7层的负载均衡可以根据头部的Host,Method,request url的内容进行智能调度,可以精细化控制
- 复杂度高
- 吞吐量小
- 后端realserver上部署的有需求(缓存服务提高命中率)
- 简单的前期负载均衡方式:
- 基于DNS的负载均衡(域名下加入多个ip)
- 基于重定向的负载均衡(http-DNS)
网友评论