开发者社区> 问答> 正文

Nginx 和 haproxy 的区别有哪些?

Nginx 和 haproxy 的区别有哪些?

展开
收起
gxx1 2022-03-31 01:30:28 573 0
1 条回答
写回答
取消 提交回答
  • Nginx 和 haproxy现在都能支持http/tcp/udp的负载均衡,nginx的采用类似编程语言的配置,用文档结构表示配置关系,看起来比较清晰,haproxy的配置有点像网络设备,定义和引用,有时候搞清一个逻辑需要上下来回翻看。

    nginx是master-workers多进程,每个进程单线程,多核CPU能充分利用;haproxy是多线程,单进程就能实现超高性能,虽然haproxy也能多进程,但是网上资料多认为开了多进程也不能提升性能,不建议多进程跑。

    即使做反向代理nginx性能略低于haproxy,但实际两者性能都超高,我在阿里云1c1g云主机上压测nginx,http性能至少能达到2000qps,而开启了https以后,性能大约550次握手/s。性能问题几乎不用担心。

    nginx特点有:

    1.使用花括号,层级化的配置文件结构

    2.除了自带的map、if语句可以实现简单逻辑,原生支持js/perl脚本,非官方支持lua

    3.除了做负载均衡还可以做静态web服务器,缓存服务器(Haproxy不行)

    4.模块化,按需编译,因为模块化,所以可选很多第三方扩展模块

    5.开源版本只有基础功能,更多的功能要折腾第三方模块,或者花钱买官方扩展版的nginx plus

    haproxy特点有:

    1.定义和引用,命令式的配置结构

    2.支持acl,但不支持其他脚本语言(评论里有人说现在可以支持了)

    3.做负载均衡性能比nginx好

    4.有一个状态统计页面

    5.官方支持会话保持、健康检查等(nginx开源版不带)

    6.基础功能覆盖要比nginx开源版好,但是不易扩展,缺乏第三方资源。

    2022-03-31 08:32:41
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《Nginx 代理系统常用手册》 立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载