网站负载均衡解决方案Web 负载均衡( Load Balancing),简单地说就是给我们的服务器集群分配“工作任务 ”,而采用恰当的分配方式,对于保护处于后端的Web 服务器来说,非常重要
反向代理负载均衡反向代理服务的核心工作主要是转发HTTP请求,扮演了浏览器端和后台Web服务器中转的角色
因为它工作在HTTP层(应用层),也就是网络七层结构中的第七层,因此也被称为 “七层负载均衡 ”
可以做反向代理的软件很多,比较常见的一种是 Nginx
Nginx 是一种非常灵活的反向代理软件,可以自由定制化转发策略,分配服务器流量的权重等
反向代理中,常见的一个问题,就是Web 服务器存储的 session数 据,因为一般负载均衡的策略都是随机分配请求的
同一个登录用户的请求,无法保证一定分配到相同的Web 机器上,会导致无法找到session的问题
解决方案主要有两种:配置反向代理的转发规则, 让同一个用户的请求一定落到同一台机器上(通过分析 cookie),复杂的转发规则将会消耗更多的CPU,也增加了代理服务器的负担
将 session这类的信息, 专门用某个独立服务来存储, 例如 redis/memchache,这个方案是比较推荐的
反 向代理服务,也是可以开启缓存的,如果开启了,会增加反向代理的负担,需要谨慎使用
这种负载均衡策略实现和部署非常简单,而且性能表现也比较好
但是, 它有 “单点故障 ”的问题,如果挂了,会带来很多的麻烦
而且,到了后期 Web 服务器继续增加,它本身可能成为系统的瓶颈
配置文件样本:#user nobody; worker_processes 1; #pid logs/nginx
pid; events { worker_connections 1024; } http { include mime
types; default_type