【Nginx教程7】nginx 配置文件详解 (高可用的集群)

【Nginx教程7】nginx 配置文件详解 (高可用的集群)

1
https://www.bilibili.com/video/BV1zJ411w7SV?p=15
1. 配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#全局配置
global_defs {
    notification_email {
        ancky2006@gmail.com
    }
    notification_email_from sns-lvs@gmail.com
    smtp_server 192.168.122.54
    smtp_connection_timeout 30
    router_id nginx_master                    # 设置nginx master的id,在一个网络应该是唯一的
}

#脚本配置
vrrp_script chk_http_port {
    script "/usr/local/src/check_nginx.sh"    # 最后手动执行下此脚本,以确保此脚本能够正常执行
    interval 2                                #(检测脚本执行的间隔,单位是秒)
    weight 2                                  # 设置当前服务器的权重
}

#虚拟IP配置
vrrp_instance VI_1 {
    state MASTER              # 指定keepalived的角色,MASTER为主,BACKUP为备
    interface eth0            # 绑定的网卡(当前centos的网卡,ifconfig可以查)
    virtual_router_id 66      # 虚拟路由编号,主服务器,备份服务器 这这要一致.
    priority 100              # 优先级,数值越大,获取处理请求的优先级越高,例如主服务器100,备服务器90.
    advert_int 1              # 检查间隔,默认为1s(vrrp组播周期秒数)
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
    chk_http_port            #(调用检测脚本)
    }
    virtual_ipaddress {
        192.168.122.200      # 定义虚拟ip(VIP),可多设,每行一个
    }
}
2. 脚本文件
1
2
3
4
5
6
7
8
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`        
if [ $A -eq 0 ];then                            
      /usr/local/nginx/sbin/nginx                           #重启nginx
      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then    #nginx重启失败,则停掉keepalived服务,进行VIP转移
              killall keepalived                    
      fi
fi

Leave a Reply

Your email address will not be published. Required fields are marked *