Nginx和HA负载

  • Nginx
  • HAProxy
  • F5硬负载
  • LVS负载

反向代理客户端请求返回的数据由代理服务器统一返回,但是实际上数据是由集群中其他服务器返回到代理服务,代理在返回给客户端。此时的代理服务器和网关类似。
正向代理是客户端通过代理服务器可以访问到其他任何地方的资源,不在充当类网关角色,只是一个中间转换点。

Nginx

  1. 工作在OSI第7层之上,可以针对http做一些分流策略,例如针对域名、目录结构,它的正则规则比HAproxy更为强大和灵活。
  2. 对网络稳定性依赖小,理论上能ping通就可以负载
  3. 安装、配置简单,测试方便,基本能把错误日志打印出来
  4. 可以承担高负载压力且稳定,硬件不差的情况下一般能撑几万次的并发量,负载度比LVS小
  5. Ng可以通过端口监测到服务器内部的故障,如根据服务器处理网页返回的状态码、超时等,并会吧返回错误的请求重新提交到另一个节点。
  6. 不仅是负载均衡器、反向代理软件,同时也是强大的web应用服务器。LNMP也是近半年非常流行的web架构,在高流量环境中稳定性也很好
  7. 可以最为中层反向代理使用
  8. 可以作为静态网页和图片服务器
  9. 社会活跃、资料多

缺点

  1. 适应范围小,仅能支持http、https、email协议
  2. 对后台服务器的健康检查,只支持通过端口检测,不支持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做hash

  • rdp-cookie
    对cookie散列,相同的cookie请求会被路由到同一服务器上

  • random
    随机选择一台

参考博客1

F5硬负载

 硬件负载

LVS负载

  1. 抗负载能力强,工作在OSI第4层,仅作分发之用,没有流量产生。这个特点决定了他在负载均衡软件里的性能强大。对内存和CPU资源消耗比较低。
  2. 配置性比较低,这是一个缺点也是一个优点,因为没有太多配置的东西,所以并不需要太多接触,大大减少了人为出错几率。
  3. 工作稳定,因为其本身抗负载能力强,自身有完整的双机热备方案,如LVS+keepalived,不过项目实施中用的最多的还是LVS/DR+Keepalived
  4. 无流量,LVS只分发请求,而流量并不从它本身出去,这点保证了均衡器IO的性能受到大流量影响
  5. 应用范围比较广,几乎可以对所有应用负载,包括HTTP、数据库、在线聊天等。

缺点

  1. 软件本身不支持正则表达式处理,不能做动静分离,所以NG/HA+Keepalived的优势所在。
  2. 如果网站应用庞大,LVS/DR+Keepalived实施复杂,再加上win server机器,实施维护就会更复杂。

Nginx和HA负载相关推荐

  1. Nginx反向代理 负载均衡sky

    Nginx服务部署 Nginx简介 Nginx (engine x) 是一个轻量级的.高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗 ...

  2. nginx服务器的负载均衡和动静分离(未完)

    安装nginx,我的博客里面有介绍源码和yum安装. 实战:使用nginx实现动静分离的负载均衡集群 实战:使用haproxy实现负载均衡集群 LB负载均衡集群分为两类:LVS(四层)和Nginx或p ...

  3. Nginx学习之负载均衡fair模块

    2019独角兽企业重金招聘Python工程师标准>>> Nginx学习之负载均衡fair模块 2017-04-10 20:27 写在开始 前面对Nginx的三种负载均衡实现做了一个简 ...

  4. nginx防止高负载的解决方案(sysgurad模块)

    为什么80%的码农都做不了架构师?>>>    如果nginx被攻击或者访问量突然变大,nginx会因为负载变高或者内存不够用导致服务器宕机,最终导致站点无法访问.今天要谈到的解决方 ...

  5. 基于nginx的tomcat负载均衡和集群(超简单)

    今天看到"基于apache的tomcat负载均衡和集群配置 "这篇文章成为javaEye热点. 略看了一下,感觉太复杂,要配置的东西太多,因此在这里写出一种更简洁的方法. 要集群t ...

  6. Nginx 反向代理 负载均衡 虚拟主机

    Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...

  7. FastDFS蛋疼的集群和负载均衡(十五)之lvs四层+Nginx七层负载均衡

    ###Interesting things lvs+nginx的拓扑图 准备环境,基于上一篇[Diary Report 2018-1-3]关于FastDFS蛋疼的集群和负载均衡(十三)之LVS-DR环 ...

  8. (转)nginx+iis实现负载均衡

    nginx+iis实现负载均衡 最近在研究分布式系统架构方面的知识,包括负载均衡,数据库读写分离,分布式缓存redis等.本篇先从负载均衡服务架构入手,关于负载均衡百度百科的定义如下:负载均衡,英文名 ...

  9. nginx+tomcat的负载均衡

    nginx+tomcat的负载均衡 一. Nginx的安装配置 1. Nginx服务器端 Nginx服务器的IP:192.168.5.108 Tomcat01的IP:   192.168.5.102 ...

  10. So easy!Nginx+SpringBoot 实现负载均衡

    在介绍Nginx的负载均衡实现之前,先简单的说下负载均衡的分类,主要分为硬件负载均衡和软件负载均衡,硬件负载均衡是使用专门的软件和硬件相结合的设备,设备商会提供完整成熟的解决方案,比如F5,在数据的稳 ...

最新文章

  1. 堆和栈的主要区别由以下几点:
  2. docker笔记1----Get Docker
  3. ThinkPHP5执行流程分析
  4. 【CV秋季划】人脸识别经典难题介绍,抗遮挡,跨年龄,异质源,少样本等
  5. iOS10权限设置问题以及xcdoe8更新细节问题
  6. ubuntu下的能安装的百度网盘的资源最新网址
  7. Python使用tkinter的Treeview组件实现表格功能
  8. 这才是你寻寻觅觅想要的 Python 可视化神器!
  9. 智能优化算法(源码)-樽海鞘优化算法(Salp Swarm Algorithm,SSA)
  10. python获取子窗口句柄
  11. echarts--迁徙图
  12. 程序员2022年薪资出炉:一线城市薪资中位数已破1.5万元,你工资涨了吗?
  13. Python list列表---学习总结
  14. 知名互联网公司系统架构图
  15. Android Fragment 从源码的角度去解析(上)
  16. 中国工程师如何获 Google 的工作机会?
  17. 为什么运放一般要反比例放大?
  18. 华为鸿蒙麒麟玉兔_华为“鸿蒙”实锤了!还有朱雀、麒麟、鲲鹏,网友:华为注册了一本《山海经》...
  19. 印象笔记,石墨笔记和Effie哪个更适合学生?
  20. css动画让箭头上下跳动

热门文章

  1. win10隐藏网络计算机,连接隐藏网络,教你win10系统电脑连接隐藏网络的方法
  2. bzoj4199品酒大会
  3. html5 队列展示,设计一个队列研究实例
  4. 计算机英语四六级考试时间,2019年12月英语四六级考试时间
  5. collapsar(collapsar网名什么意思)
  6. 关于jmeter TPS解读
  7. 半圆形进度条(小程序)
  8. echarts 半圆形进度条
  9. JavaScript(3)基础
  10. 公务员考试152分上岸经验,你同样可以复制