• 企业架构LNMP学习笔记28


    企业架构LNMP高可用负载均衡服务器之Nginx:

    1)能够描述负载均衡的作用;loadbalance LB。

    2)能够了解负载均衡常见的实现方式;

    3)能够使用nginx实现负载均衡;

    4)能够描述nginx的常见的负载均衡调度算法;

    业务背景描述:

    时间:2011.6 ~ 2013.9

    发布产品类型:互联网动态站点  电商

    用户数量:4000~8000 (用户数量猛增)

    PV: 16000-100000:(24小时访问次数)

    QPS:50~100 (每秒访问次数)

    DAU:400-800 (每日活跃用户数)

    随着业务量增加,之前单点服务器,已经不能满足业务的需要。如果主服务器宕机,备用服务器提供服务,因为流量太大,备用服务器也宕机。需要多台服务器同时提供服务。

    模拟运维设计方案:

    以上架构服务器,已经不能满足以上提到的业务需求,架构发生如下变化:

    调度服务器:负载均衡服务器。由它确定把请求转发到不同的web服务器

    调度作用。把流量尽量平均分配到后端的web服务器上。请求分发。

    服务器基本环境部署:

    克隆复制虚拟机:

    server04 lb loadbalance  192.168.17.110

    智能负载均衡。

    基本环境配置:

    网卡IP、主机名称、hosts解析;

    负载均衡服务器搭建:

    引入负载均衡技术:

    负载均衡技术,load balance,LB,是一种概念,把资源的使用进行平均分配。

    搞集群要掌握HA和LB两个技术。

    负载均衡:分发流量,请求到不同的服务器。使流量平均分配。(理想的状态)。

    作用:

    服务器容灾,流量分发。

    主要作用:

    1)流量分发,请求平均,降低单机的压力。

    其他作用:

    1)安全:隐藏后端真实服务;

    2)屏蔽非法请求(七层负载均衡);不合法,请求拒绝。防火墙。四层只有连接的概念。

    负载均衡的分类:

    1)二层负载均衡(mac)

    根据OSI模型分的二层进行负载,一般是用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后,再分配后端实际的MAC地址响应    LVS。

    2)三层负载均衡(ip)

    一般采用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后,再分配后端实际的IP地址响应

    3)四层负载均衡(tcp) 网络运输层面的负载均衡

    在三层负载均衡的基础上,用ip+port接收请求,再转发到对应的机器

    4)七层负载均衡(http) 智能型负载均衡

    根据虚拟的url或IP,主机接收请求,再转向(反向代理)相应的处理服务器

    最常见的是四层和七层。

    常见的实现方式:

    实现方式分类:

    1)软件级别:性价比高、可控性强;

    2)硬件级别:性能好、价格高,几万到几十万不等。

    互联网公司更多的是通过软件级别。

    硬件实现方式:

    F5 BIG-IP。500万并发数。F5是公司,BIG-IP是他们的一款产品。四层和七层都可以做。

    软件实现方式:

    OSI分层实现方式
    七层Nginx、HAproxy
    四层LVS、HAproxy、Nginx(1.9版本后)

    四层与七层对比:

    性能四层高、七层性能中。

    安全性:四层低,七层高。可以防御SYN、Cookie以及SYN flood等攻击。

    TCP SYN泛洪发生在OSI第四层,这种方式利用TCP协议的特性,就是三次握手。攻击者发送TCP SYN,SYN是TCP三次握手中的第一个数据包,而当服务器返回ACK后,该攻击者就不对其进行再确认,那这个TCP连接就处于挂起状态,也就是所谓的半连接状态,服务器收不到再确认的话,还会重复发送ACK给攻击者。这样更加会浪费服务器的资源。攻击者就对服务器发送非常大量的这种TCP连接,由于每一个都没法完成三次握手,所以在服务器上,这些TCP连接会因为挂起状态而消耗CPU和内存,最后服务器可能死机,就无法为正常用户提供服务了。

  • 相关阅读:
    【debian系统arm架构安装docker】且换源后依旧不行就离线导入镜像
    第四十一篇 指令中的VNode
    C调用Objective-C的类和方法
    java计算机毕业设计快递配送平台源码+系统+mysql数据库+lw文档+部署
    nodejs+vue面向中小学课堂教学辅助软件系统的设计与实现-微信小程序-安卓-python-PHP-计算机毕业设计
    【FreeSwitch开发实践】C语言中使用ESL连接FreeSwitch
    【JavaEE初阶】 JavaScript基础语法——贰
    网络安全笔记--文件上传1
    掌握Python爬虫实现网站关键词扩展提升曝光率
    在博客园随笔中插入3D分子模型
  • 原文地址:https://blog.csdn.net/chang_chunhua/article/details/132775716