• 6. Nginx配置示例-高可用集群


    一、高可用原理图:就是配置多个nginx,防止其中某个nginx宕机,有备无患。keepalived用来防止单点故障,后面主要通过修改keepalived的配置文件来完成高可用。

     二、配置

    1.在两个服务器(192.168.17.129、192.168.17.131)上安装两台Nginx,参考前面Nginx安装章节

    2.在两个服务器上分别安装keepalived

    1 yum install leepalived -y

     安装之后,在etc里面生成目录keepalived,有配置文件keepalived.conf

    三、完成高可用配置(主从配置)

    1. 修改/etc/keepalived/keepalived.conf

     1 global_defs { 
     2      notification_email { 
     3      acassen@firewall.loc 
     4      failover@firewall.loc 
     5      sysadmin@firewall.loc 
     6  } 
     7      notification_email_from Alexandre.Cassen@firewall.loc 
     8      smtp_server 192.168.17.129 
     9      smtp_connect_timeout 30 
    10      router_id LVS_DEVEL 
    11 }
    12 
    13 vrrp_script chk_http_port { 
    14      script "/usr/local/src/nginx_check.sh" 
    15      interval 2 #(检测脚本执行的间隔) 
    16      weight 2
    17 }
    18 
    19 
    20 vrrp_instance VI_1 { 
    21      state BACKUP # 备份服务器上将 MASTER 改为 BACKUP 
    22      interface ens33 //网卡 
    23      virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同 
    24      priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小 
    25      advert_int 1 
    26      authentication { 
    27      auth_type PASS 
    28      auth_pass 1111 
    29  } 
    30      virtual_ipaddress { 
    31          192.168.17.50 // VRRP H 虚拟地址 
    32      } 
    33 }

    2. 在/usr/local/src添加检测脚本

    1 #!/bin/bash 
    2 A=`ps -C nginx –no-header |wc -l` 
    3 if [ $A -eq 0 ];then 
    4      /usr/local/nginx/sbin/nginx 
    5      sleep 2 
    6      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then 
    7          killall keepalived 
    8      fi 
    9 fi

    3. 启动Nginx、keepalived

    ./nginx
    
    systemctl start keepalived.service

    四、测试

    1.在访问虚拟ip地址 192.168.17.50

     

     

     2.把主服务器上的nginx和keepalived停止,再次输入192.168.17.50

     

     五、Nginx原理

    1. master和worker

      master进行管理worker,worker实际处理请求。

      查看nginx进程

     

      框架

     

     2. worker如何工作

     

     3. 一个master和多个worker好处

     1)可以使用nginx s reload 热部署,利用nginx进行热部署操作

     2)每个woker是独立的进程,如果有其中的一个woker出现问题,其他woker独立的,继续进行争抢,实现请求过程,不会造成服务中断

    4. worker数量设置为多少合适

      worker数和服务器的cpu数相等是最为适宜的

    5. 连接数worker_connection

     第一个:发送请求,占用了woker的几个连接数?

     答案:2或者4个(不与后台交互就是2个,一来一回。如果和后台交互就是4个,客户端=nginx=tomcat)

     第二个:nginx有一个master,有四个woker,每个woker支持最大的连接数1024,支持的最大并发数是多少?

       普通的静态访问最大并发数是:worker_connections * worker_processes /2,  

      而如果是HTTP作为反向代理来说,最大并发数量应该是worker_connections *worker_processes/4

  • 相关阅读:
    identityser4 samesit 问题
    mysql 8 root密码重置
    OutSystems学习笔记。
    获取两个List中的不同元素,4种方法,逐步优化,学习使用
    java 配置在.properties文件中的常量
    java POST 传值 加签 验证
    springboot jpa 多条件查询(多表)
    java代码行数统计工具类
    Map集合遍历的4种方法
    springboot jpa 多条件查询(单表)
  • 原文地址:https://www.cnblogs.com/qmillet/p/12121802.html
Copyright © 2020-2023  润新知