【技能】提高网站可用性
提高网站可用性,这个话题就太广了,就按照我想到的写几点了,以后想到了再加
1)容灾备份
对于有点规模的网站,服务器都不止1台,最简单的就是代码分布在好几台机器上。
第一:可以起到备份的作用,一台坏了,可以马上切到其他机器上
第二:降低机器的压力,增加并发处理能力
2)负载均衡
上面一点我们提到代码放在好几台机器上,根据每台的硬件配置情况,很多软件都可以实现 请求分发的(反向代理),例如nginx,lvs了。我常用的是ngnix。可以通过nginx配置后端服务器,并且可以指定每个服务器的权重,这样就可以分发请求。并且nginx还可以通过failover配置 后端机器出问题了 如何处理
反向代理是什么东西?是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端
3) 服务器多IP,DNS服务流量分发
这个操作可以在以下两个方面做贡献
第一:分地域使用不同的ip,例如服务器有两个ip,一个电信,一个铁通的,可以根据地域或者用户的网络通过DNS服务做判断,为用户选择更快的ip
第二:故障处理,例如在某个时间段,某个运营商的ip出问题了,我们还有通过dns服务切换到另一个ip,当然切换时间和dns设置的缓存时间有关系的
4) 加缓存使用户访问更快更流畅
我这里说的缓存是数据库缓存(redis/memcache) 和 静态文件缓存了。