对于做软负载,我们都知道主流的方案有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 )
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端