Nginx和HA负载
Nginx和HA负载
- Nginx
- HAProxy
- F5硬负载
- LVS负载
反向代理客户端请求返回的数据由代理服务器统一返回,但是实际上数据是由集群中其他服务器返回到代理服务,代理在返回给客户端。此时的代理服务器和网关类似。
正向代理是客户端通过代理服务器可以访问到其他任何地方的资源,不在充当类网关角色,只是一个中间转换点。
Nginx
- 工作在OSI第7层之上,可以针对http做一些分流策略,例如针对域名、目录结构,它的正则规则比HAproxy更为强大和灵活。
- 对网络稳定性依赖小,理论上能ping通就可以负载
- 安装、配置简单,测试方便,基本能把错误日志打印出来
- 可以承担高负载压力且稳定,硬件不差的情况下一般能撑几万次的并发量,负载度比LVS小
- Ng可以通过端口监测到服务器内部的故障,如根据服务器处理网页返回的状态码、超时等,并会吧返回错误的请求重新提交到另一个节点。
- 不仅是负载均衡器、反向代理软件,同时也是强大的web应用服务器。LNMP也是近半年非常流行的web架构,在高流量环境中稳定性也很好
- 可以最为中层反向代理使用
- 可以作为静态网页和图片服务器
- 社会活跃、资料多
缺点
- 适应范围小,仅能支持http、https、email协议
- 对后台服务器的健康检查,只支持通过端口检测,不支持url。
负载策略
- 轮询
每个请求按时间顺序逐一分配到不同的后端服务器,如果后台down,可以自动剔除 - weight
权重,指轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况 - ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题 - fair (第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配 - url_hash (第三方)
按访问的url的hash结果来分配请求,式每个url定向到同一个对应的后端服务器。
参考博文
HAProxy
- HA 支持虚拟主机,可以工作在OSI 4层、7层,支持多个网段
- HA能够补充ng的一些缺点,如session保持、cookie引导,同时支持通过获取指定的url来监测后端服务器的状态。
- HA和LVS类似,本身就是一款负载均衡软件,单纯从效率上来讲HA比ng有更高的负载均衡效率
- HA支持TCP协议的负载均衡转发,可以对mysql读进行负载均衡,对后端MySQL节点进行检测和负载均衡。可以使用LVS+Keepalived对mysql主从做负载均衡。
负载均衡策略多,具体有以下几种:
roundrobin
简单轮询,每个服务器根据权重轮流使用,在服务器的处理事件平均分配的情况下这是最流畅、公平的算法。而且算法是动态的对于实例启动慢的服务器权重会在运行中调整。最大支持4095个后端主机;leastconn
连接数最好的服务器优先选择。leastconn建议用于长会话服务,例如LDAP、SQL、TSE等。而不适合短会话协议。如http该算法是动态的,对于实例启动慢的服务器权重会在运行中调整;static-rr
每个服务器根据权重轮询使用,类似roundrobin,但他是静态的,意味着运行时修改权限是无效的。另外,他对服务器的数量没有限制。source
对请求源IP地址进行哈希(可用服务器权重总数 / hash值),根据结果进行分配,只要服务器正常,同一个客户端IP地址总是访问同一个服务器。如果hash结果随可用服务器数量变化而变化,那么客户端会定向到不同的服务器;该算法一般用于不能插入cookie的tcp模式。它还可以用于 广域网上为拒绝使用会话cookie的客户端提供最有效的粘连;该算法默认是静态的,所以运行时修改服务器的权重是无效的,但是算法会根据hash-type的变化做调整。url(不带参数的url)
对请求的url路径做散列url_param
根据请求的url参数,ha会对参数做hash,然后路由到某一台服务器,所以相同的参数始终会访问同一太服务器。hdr(heaer)
对每个请求的header做hashrdp-cookie
对cookie散列,相同的cookie请求会被路由到同一服务器上random
随机选择一台
参考博客1
F5硬负载
硬件负载
LVS负载
- 抗负载能力强,工作在OSI第4层,仅作分发之用,没有流量产生。这个特点决定了他在负载均衡软件里的性能强大。对内存和CPU资源消耗比较低。
- 配置性比较低,这是一个缺点也是一个优点,因为没有太多配置的东西,所以并不需要太多接触,大大减少了人为出错几率。
- 工作稳定,因为其本身抗负载能力强,自身有完整的双机热备方案,如LVS+keepalived,不过项目实施中用的最多的还是LVS/DR+Keepalived
- 无流量,LVS只分发请求,而流量并不从它本身出去,这点保证了均衡器IO的性能受到大流量影响
- 应用范围比较广,几乎可以对所有应用负载,包括HTTP、数据库、在线聊天等。
缺点
- 软件本身不支持正则表达式处理,不能做动静分离,所以NG/HA+Keepalived的优势所在。
- 如果网站应用庞大,LVS/DR+Keepalived实施复杂,再加上win server机器,实施维护就会更复杂。
Nginx和HA负载相关推荐
- Nginx反向代理 负载均衡sky
Nginx服务部署 Nginx简介 Nginx (engine x) 是一个轻量级的.高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗 ...
- nginx服务器的负载均衡和动静分离(未完)
安装nginx,我的博客里面有介绍源码和yum安装. 实战:使用nginx实现动静分离的负载均衡集群 实战:使用haproxy实现负载均衡集群 LB负载均衡集群分为两类:LVS(四层)和Nginx或p ...
- Nginx学习之负载均衡fair模块
2019独角兽企业重金招聘Python工程师标准>>> Nginx学习之负载均衡fair模块 2017-04-10 20:27 写在开始 前面对Nginx的三种负载均衡实现做了一个简 ...
- nginx防止高负载的解决方案(sysgurad模块)
为什么80%的码农都做不了架构师?>>> 如果nginx被攻击或者访问量突然变大,nginx会因为负载变高或者内存不够用导致服务器宕机,最终导致站点无法访问.今天要谈到的解决方 ...
- 基于nginx的tomcat负载均衡和集群(超简单)
今天看到"基于apache的tomcat负载均衡和集群配置 "这篇文章成为javaEye热点. 略看了一下,感觉太复杂,要配置的东西太多,因此在这里写出一种更简洁的方法. 要集群t ...
- Nginx 反向代理 负载均衡 虚拟主机
Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...
- FastDFS蛋疼的集群和负载均衡(十五)之lvs四层+Nginx七层负载均衡
###Interesting things lvs+nginx的拓扑图 准备环境,基于上一篇[Diary Report 2018-1-3]关于FastDFS蛋疼的集群和负载均衡(十三)之LVS-DR环 ...
- (转)nginx+iis实现负载均衡
nginx+iis实现负载均衡 最近在研究分布式系统架构方面的知识,包括负载均衡,数据库读写分离,分布式缓存redis等.本篇先从负载均衡服务架构入手,关于负载均衡百度百科的定义如下:负载均衡,英文名 ...
- nginx+tomcat的负载均衡
nginx+tomcat的负载均衡 一. Nginx的安装配置 1. Nginx服务器端 Nginx服务器的IP:192.168.5.108 Tomcat01的IP: 192.168.5.102 ...
- So easy!Nginx+SpringBoot 实现负载均衡
在介绍Nginx的负载均衡实现之前,先简单的说下负载均衡的分类,主要分为硬件负载均衡和软件负载均衡,硬件负载均衡是使用专门的软件和硬件相结合的设备,设备商会提供完整成熟的解决方案,比如F5,在数据的稳 ...
最新文章
- 堆和栈的主要区别由以下几点:
- docker笔记1----Get Docker
- ThinkPHP5执行流程分析
- 【CV秋季划】人脸识别经典难题介绍,抗遮挡,跨年龄,异质源,少样本等
- iOS10权限设置问题以及xcdoe8更新细节问题
- ubuntu下的能安装的百度网盘的资源最新网址
- Python使用tkinter的Treeview组件实现表格功能
- 这才是你寻寻觅觅想要的 Python 可视化神器!
- 智能优化算法(源码)-樽海鞘优化算法(Salp Swarm Algorithm,SSA)
- python获取子窗口句柄
- echarts--迁徙图
- 程序员2022年薪资出炉:一线城市薪资中位数已破1.5万元,你工资涨了吗?
- Python list列表---学习总结
- 知名互联网公司系统架构图
- Android Fragment 从源码的角度去解析(上)
- 中国工程师如何获 Google 的工作机会?
- 为什么运放一般要反比例放大?
- 华为鸿蒙麒麟玉兔_华为“鸿蒙”实锤了!还有朱雀、麒麟、鲲鹏,网友:华为注册了一本《山海经》...
- 印象笔记,石墨笔记和Effie哪个更适合学生?
- css动画让箭头上下跳动