负载均衡 - 目录
负载均衡 - Nginx 与 HAProxy 对比
一、Nginx 与 HAProxy 对比
说明:做反向代理 nginx 性能略低于 haproxy,但实际两者性能都超高,我在阿里云1c1g云主机上压测 nginx,http 性能至少能达到 2000qps,而开启了 https 以后,性能大约 550 次握手/s。性能问题几乎不用担心。
1. 相同点
- 都能支持 http/tcp/udp 的负载均衡;
2. 不同点
- nginx 的采用类似编程语言的配置,用文档结构表示配置关系,看起来比较清晰;
- haproxy 的配置有点像网络设备,定义和引用,有时候搞清一个逻辑需要上下来回翻看;
- nginx 是 master-workers 多进程,每个进程单线程,多核CPU能充分利用;
- haproxy 是多线程,单进程就能实现超高性能,虽然 haproxy 也能多进程,但是网上资料多认为开了多进程也不能提升性能,不建议多进程跑。
3. Nginx
- 使用花括号,层级化的配置文件结构;
- 除了自带的map、if语句可以实现简单逻辑,原生支持js/perl脚本,非官方支持lua;
- 除了做负载均衡还可以做静态web服务器,缓存服务器(Haproxy不行);
- 模块化,按需编译,因为模块化,所以可选很多第三方扩展模块;
- 开源版本只有基础功能,更多的功能要折腾第三方模块,或者花钱买官方扩展版的nginx plus。
4. HAProxy
- 定义和引用,命令式的配置结构;
- 支持acl,但不支持其他脚本语言(评论里有人说现在可以支持了);
- 做负载均衡性能比nginx好;
- 有一个状态统计页面;
- 官方支持会话保持、健康检查等(nginx开源版不带);
- 基础功能覆盖要比nginx开源版好,但是不易扩展,缺乏第三方资源。