• nginx负载均衡和高可用


    HA高可用

            选择的原因:开源,免费

            高可用:high availbility:至少有2个以上的节点提供服务,互相备份,其中的一个坏了,另外一个可以顶替。

    • master:主要的,对外提供服务的

    • backup:备份的,不对外提供服务,在master是好的情况下;一旦master挂了,backup马上就会接替master的工作,成为master

    单点故障

            某些重要的应用,只有1个节点,如果这个节点出现故障,导致服务不可用。

    高可用软件

            keepailved、HA proxy、heartbeat

    keepalived 的功能

    • HA

    • loadbalance 使用的是lvs

    nginx+keepalived高可用配置详解ljx1528的博客-CSDN博客keepalived+nginx配置

    LVS(Linux virtual Server)

    keepalived这个软件会联系内核的lvs

    负载均衡

    nginx4层和7层负载均衡有什么区别

    nginx默认使用的是7层的,因为要看协议,而lvs看端口号

    支持的服务数量

    7层:http

    4层:

    • http

    • MySQL

    • dns

    • ftp

    3层负载均衡

    一般在机房的基础设施上做负载均衡(路由器)

    dns域名负载均衡

    将双vip使用起来,发布出去给客户使用

    vrrp详解(网络层)

    虚拟路由冗余协议,它使用ip多播数据包进行封装,组地址为224.0.0.18,最多255个vrrp路由器。

    VRRP包的源地址是本机地址,目的地址必须为224.0.0.18,为多播地址;ip协议号为112;IP包的TTL值为255

    VRRP协议详解_天蓝Skyline的博客-CSDN博客_vrrp

    1. ! Configuration File for keepalived
    2. global_defs {
    3.   notification_email {
    4.     acassen@firewall.loc
    5.     failover@firewall.loc
    6.     sysadmin@firewall.loc
    7.   }
    8.   notification_email_from Alexandre.Cassen@firewall.loc
    9.   smtp_server 192.168.200.1
    10.   smtp_connect_timeout 30
    11.   router_id LVS_DEVEL
    12.   vrrp_skip_check_adv_addr
    13.   #vrrp_strict
    14.   vrrp_garp_interval 0
    15.   vrrp_gna_interval 0
    16. }
    17. vrrp_instance VI_1 {
    18.   state MASTER
    19.   interface ens33
    20.   #id自己的机器要一样,不一样就会产生脑裂现象
    21.   virtual_router_id 51
    22.   #优先级,优先级越高越容易成为master
    23.   priority 100
    24.   #成为master之后每隔1秒向外面发出宣告证明自己还是ok的
    25.   advert_int 1
    26.   #认证口令
    27.   authentication {
    28.       auth_type PASS
    29.       auth_pass 1111
    30.   }
    31.   #虚拟ip
    32.       virtual_ipaddress {
    33.       192.168.200.16
    34.       192.168.200.17
    35.       192.168.200.18
    36.   }

    脑裂

    原因:

    1. 防火墙组织了keepalived的vrrp消息的通告

    2. virtual_router_id不一样的时候

    健康检测

    • 主动检测:LB每隔一段时间就去检查下后端的real server的状态,不管是否有client发请求过来,都会区检查

    • 被动检测:当client发请求给LB,然后LB再去转发请求给后端的real server,这个时候如果后端的服务器出现问题了,LB就发现了,被客户机逼着去检查后端的real server

    nginx调优(参数优化)

    1. 参数调优

      1. 比如更改worker_connections 1024;worker_processes 4;都算调优

      2. ulimit -n 1000 -内核参数调优 --文件描述符 --进程

      3. vm.swappiness = 0 -》先使用物理内存,最后使用swap分区,内存调优

      4. keepalived 65;

    2. 功能开启或者关闭

  • 相关阅读:
    第四章:控制结构
    基于复旦微的FMQL45T900全国产化ARM开发开发套件(核心板+底板)
    Luffy项目整体流程(一)
    [SQL]数据库语言学习
    docker 是什么
    zookeeper源码(10)node增删改查及监听
    如何使用 NestJs、PostgreSQL、Redis 构建基于用户设备的授权验证
    ArduPilot开源飞控之GCS显示DPS310异常问题
    计算机网络快速复习
    Channel 是什么?
  • 原文地址:https://blog.csdn.net/a1991376352/article/details/125963027