对于做软负载,我们都知道主流的方案有LVS、Haproxy、Nginx!那么对于Haproxy和Nginx,我们如何选择呢?回答这个问题之前,我根据个人使用经验来讲下它们的特点!

Haproxy特点

  1. 支持TCP与Http协议,工作在网络4层和7层
  2. 支持Session共享、Cookies引导
  3. 支持通过URL健康检测
  4. 支持8种负载均衡策略
  5. 支持心跳检测

Nginx特点

  1. 支持Http协议,工作在网络7层
  2. 支持通过端口健康检测
  3. 支持强大的正则匹配规则
  4. 支持WebSocket协议
  5. 支持Http Cache

说明:对于Http协议,Haproxy处理效率比Nginx高。所以,没有特殊要求的时候或者一般场景,建议使用Haproxy来做Http协议负载!但如果是Web,那么建议使用Nginx!总之,大家可以结合各自使用场景的特点来进行合理地选择!

上次有人问我:Nginx或Haproxy的连接数能否突破“65535”这个“魔咒”?其实大家有这样的疑问,是因为对Nginx或Haproxy工作原理不了解导致的!

下面以Linux服务器为例,讲解下二者理论上最大连接数:

Linux上Nginx理论上最大连接数

正向代理:最大连接数 = work_processes * worker_connections 
反向代理:最大连接数 = work_processes * worker_connections / 4 
备注:worker_connections指单个进程能够处理的最大连接数,假设你的服务器是8核,worker_connections = 
65535(可以自定义的,但最大不能超过最大文件描述符数,因为1个连接相当于使用了1个文件描述符)

在上述2种情况下最大连接数(理论值)分别是: 8 * 65535 和 8 * 65535 /4

Linux上Haproxy理论上最大连接数

最大连接数 = maxconn( global | defaults | listen )

参考:

http://blog.csdn.net/hexieshangwang/article/details/49359259(以上内容转自此篇文章)

https://www.zhihu.com/question/34489042

http://blog.csdn.net/lushuai93/article/details/50819503

Nginx与HAProxy的区别的更多相关文章

  1. LVS Nginx和HAproxy的区别,怎么选择最好

    LVS Nginx和HAproxy有什么区别呢? LVS:Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统. Nginx:Nginx是一款轻量级的w ...

  2. LVS、Nginx和HAProxy区别

    LVS.Nginx和HAProxy区别 LVS 优点: 高并发连接:LVS基于内核网络层面工作,有超强的承载能力和并发处理能力.单台LVS负载均衡器,可支持上万并发连接. 抗负载能力强:是工作在网络4 ...

  3. lvs、nginx、HAProxy、keepalive工作原理

    1. lvs.nginx.HAProxy.keepalive工作原理 1.1. 前言 遇到了负载均衡和高可用选型问题,我觉的有必要好好理解下lvs,nginx,haproxy和keepalive的区别 ...

  4. 【转】lvs、nginx、haproxy转发模式优缺点总结

    原文地址: https://yq.aliyun.com/ziliao/78374 一.LVS转发模式 LVS是章文嵩博士写的一个工作于四层的高可能性软件.不像后两者支持七层转发,不过也正因为其简单,所 ...

  5. octavia的实现与分析(一)·openstack负载均衡的现状与发展以及lvs,Nginx,Haproxy三种负载均衡机制的基本架构和对比

    [负载均衡] 大量用户发起请求的情况下,服务器负载过高,导致部分请求无法被响应或者及时响应. 负载均衡根据一定的算法将请求分发到不同的后端,保证所有的请求都可以被正常的下发并返回. [主流实现-LVS ...

  6. openstack octavia的实现与分析(一)openstack负载均衡的现状与发展以及lvs,Nginx,Haproxy三种负载均衡机制的基本架构和对比

    [负载均衡] 大量用户发起请求的情况下,服务器负载过高,导致部分请求无法被响应或者及时响应. 负载均衡根据一定的算法将请求分发到不同的后端,保证所有的请求都可以被正常的下发并返回. [主流实现-LVS ...

  7. LB 简单比较 – F5、NetScaler、LVS、Nginx、Haproxy

    LB 简单比较 – F5.NetScaler.LVS.Nginx.Haproxy 负载均衡技术是构建大型网站必不可少的架构策略之一.它的目的是,把用户的请求分发到多台后端的设备上,用以均衡服务器的负载 ...

  8. Nginx/LVS/HAProxy负载均衡软件的优缺点详解

    PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不 ...

  9. Nginx/LVS/HAProxy负载均衡软件的优缺点详解(转)

    PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不 ...

随机推荐

  1. ES之值类型以及堆和栈

    ES的数据类型: 原始类型(值存在栈内存中): Number.String Boolean.undefined.null charAt(index)返回该index所在的字节,charCodeAt(i ...

  2. A/B宣言

    作者:Dunne & Raby A B 肯定的  批判的 解决问题的 发现问题的 设计即流程 设计即方法 给出答案 问问题 为行业中服务 为社会服务 说明世界是怎样的 说明世界可能是怎样的 科 ...

  3. Javaweb项目构建常见问题

    eclipse中 将java项目转换为web项目 1.找到项目工作空间目录,打开.project文件,并修改文件, 修改如下:      找到:<natures> </natures ...

  4. jboss中JVM监控

    1)打开 http://server-name-or-ip/jmx-console/HtmlAdaptor2)在 jboss.system 节点找到 type=ServerInfo ,点击进入3)找到 ...

  5. Farseer.net轻量级ORM开源框架说明及链接索引

    项目简介 基于.net framework 4 开发. 基于Lambda表达式快速上手的ORM框架. 参考Entity Framework的调用方式. 基于Database First模式. POCO ...

  6. Locations for Public Frameworks

    Locations for Public Frameworks Third-party frameworks can go in a number of different file-system l ...

  7. Linux关于文件的权限笔记

    1.调整文件的权限命令:chmodLinux的每个文件都定义了文件的拥有者:u(user).拥有组:g(group).其他人:o(others)权限,对应的权限用rwx的组合来定义.使用chmod命令 ...

  8. C/S模型:TCP,UDP构建客户端和服务器端(BIO实现

    Java中提供了socket编程来构建客户端和服务器端 TCP构建服务器端的步骤:(1)bind:绑定端口号(2)listen:监听客户端的连接请求(3)accept:返回和客户端连接的实例(4)re ...

  9. CAD使用SetxDataString写数据(com接口)

    主要用到函数说明: MxDrawEntity::SetxDataString 写一个字符串扩展数据,详细说明如下: 参数 说明 [in] BSTR val 字符串值 szAppName 扩展数据名称 ...

  10. Lua表(table)的用法_个人总结

    Lua表(table)的用法_个人总结 1.表的创建及表的介绍 --table 是lua的一种数据结构用来帮助我们创建不同的数据类型.如:数组和字典--lua table 使用关联型数组,你可以用任意 ...