lvs和nginx都是现在很主流的负载均衡方式,他们各有优缺点,在生产环境需要根据其特点做出选择:
LVS | Nginx | |
四层 | 四层/七层 | |
抗负载能力 | 强 | 弱 |
配置性 |
可配置性低 同时也减少了人为出错的概率 |
可配置性高 可以配置一些高级功能 |
稳定性 |
稳定性高 有完整的双机热备方案 |
稳定性低,有单机故障 无现成的双机热备方案 |
网络架构依赖 |
强依赖 非常依赖网络架构设计 当然可以采用比较简单的NAT方式解决此问题 |
无依赖 |
网络稳定性依赖 |
依赖 数据包分发到坏的后端,不会重新分发,会直接返回错误 |
不依赖 数据包分发到坏的后端并返回错误后,会尝试重新分发到健康的后端 |
网络流量 |
仅请求流量经过lvs的网络,响应流量由后端服务器的网络返回。 FULL_NAT同Nginx。 |
所有的请求和响应流量都会经过nginx |
宿主机性能要求 |
要求较低 lvs仅仅做分发请求,流量并不从它本身出去,所以瓶颈仅仅受限于网络带宽和网卡性能 |
要求较高 因为nginx需要对源端和目的端都单独建立连接,中间还涉及到一些数据包的解析处理,所以依赖宿主机的I/O性能和CPU内存 |
转发方式 |
同步转发 lvs服务器接收到请求之后,立即redirect到一个后端服务器,由客户端直接和后端服务器建立连接。 |
异步转发 在保持客户端连接的同时,发起一个相同内容的新请求到后端,等后端返回结果后,由nginx返回给客户端 |
其他 |
支持rewrite重写规则:能够根据域名、url的不同,将http请求分到不同的后端服务器群组。 节省带宽:支持gzip压缩,可以添加浏览器本地缓存的header头。 |
版权声明:本文为SearchB原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。