Nginx学习&部署环境(五)-配置高可用集群实例

目录

一、配置高可用集群实例

1、前期准备工作

  2、配置高可用集群配置(主从配置)


一、配置高可用集群实例

单台Nginx可能宕机的几率比较大。如下图

 高可用配置如下图

1、前期准备工作

1、准备工作

(1)、需要两台Nginx服务器

(2)、需要在2台服务器安装keepalived

(3)、需要虚拟IP

--安装keepalived
yum -y install keepalived
--验证是否安装成功
[root@localhost sbin]# rpm -q -a keepalived
keepalived-1.3.5-19.el7.x86_64
[root@localhost sbin]#
--keepalived的安装目录 /etc/keepalived
[root@localhost etc]# cd /etc/keepalived
[root@localhost keepalived]# ls
keepalived.conf
[root@localhost keepalived]#

两台Nginx服务器IP

192.168.0.113

192.168.0.137

虚拟IP:192.168.0.110

  2、配置高可用集群配置(主从配置)

1、修改/etc/keepalived/keepalived.conf配置文件
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.0.113
   smtp_connect_timeout 30
   router_id LVS_DEVEL   # 访问到主机
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script chk_http_port {
    script   "usr/local/src/nginx_check.sh"
    interval  2      #(检测脚本执行的间隔)
    weight   2
}

vrrp_instance VI_1 {
    state MASTER       # 备份服务器上将MASTER 改为BACKUP
    interface enp0s3        # 网卡
    virtual_router_id 51 # 主备机的virtual_router_id 必须相同
    priority 80          # 主备机取不同优先级,主机值较大,备机值较小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.0.110   //VRRP 虚拟机地址
    }
}

2、在/usr/local/src下添加检测脚本nginx_check.sh
#!/bin/bash
A=`ps -C nginx -no-header |wc -l`
if [ $A -eq 0];then
    /usr/local/nginx/sbin/nginx
    sleep  2
    if [ `ps -C nginx --no-header |wc -l` -eq 0];then
        killall  keepalived
    fi
fi

3、把两台服务器上的Nginx和keepalived启动
启动nginx:./nginx
启动keepalived:systemctl start keepalived.service

---------------
[root@localhost sbin]# ./nginx
[root@localhost sbin]# systemctl start keepalived.service
[root@localhost sbin]# ps -ef | grep keepalived
root     10986     1  0 12:10 ?        00:00:00 /usr/sbin/keepalived -D
root     10987 10986  0 12:10 ?        00:00:00 /usr/sbin/keepalived -D
root     10988 10986  0 12:10 ?        00:00:00 /usr/sbin/keepalived -D
root     11007  2099  0 12:11 pts/0    00:00:00 grep --color=auto keepalived
[root@localhost sbin]#
----------------
4、测试

4、测试:http://192.168.0.110/

---主机上可以看到192.168.0.110/32 scope global enp0s3
[root@localhost sbin]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:a8:1c:bd brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.113/24 brd 192.168.0.255 scope global dynamic enp0s3
       valid_lft 75129sec preferred_lft 75129sec
    inet 192.168.0.110/32 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fea8:1cbd/64 scope link
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:01:a7:1f:b4 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
[root@localhost sbin]#
---备机上可以看到global dynamic enp0s3
[root@localhost sbin]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:11:ba:72 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.137/24 brd 192.168.0.255 scope global dynamic enp0s3
       valid_lft 82365sec preferred_lft 82365sec
    inet6 fe80::a00:27ff:fe11:ba72/64 scope link
       valid_lft forever preferred_lft forever
[root@localhost sbin]#

把主服务器(192.168.0.113)nginx和keepalived停止,

--
停止keepalived:systemctl stop keepalived.service
停止nginx:./nginx -s stop

[root@localhost sbin]# systemctl stop keepalived.service
[root@localhost sbin]# ./nginx -s stop

 再测试:http://192.168.0.110/

--备机上可以看到inet 192.168.0.110/32 scope global enp0s3
[root@localhost sbin]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:11:ba:72 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.137/24 brd 192.168.0.255 scope global dynamic enp0s3
       valid_lft 82052sec preferred_lft 82052sec
    inet 192.168.0.110/32 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe11:ba72/64 scope link
       valid_lft forever preferred_lft forever
[root@localhost sbin]#
---主机上变为global dynamic enp0s3
[root@localhost sbin]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:a8:1c:bd brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.113/24 brd 192.168.0.255 scope global dynamic enp0s3
       valid_lft 74707sec preferred_lft 74707sec
    inet6 fe80::a00:27ff:fea8:1cbd/64 scope link
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:01:a7:1f:b4 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
[root@localhost sbin]#

keepalived.conf配置文件中的router_id LVS_DEVEL可在如下做配置,可不配置。
vi /etc/hosts中配置

127.0.0.1       LVS_DEVEL

Nginx学习&部署环境(一)

Nginx学习&部署环境(六)-Nginx原理

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杀神lwz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值