Nginx Keepalived dual-machine active and standby configuration

1 Principle of dual-system active and standby

The dual-machine active/standby is to handle when the Nginx main server goes down, the standby server will be started for services, so as to achieve the high availability of the framework.

Insert picture description here

2 Host configuration

2.1 View the name of the network card

inet 192.168.51.6/24 brd 192.168.51.255 scope global ens33

ens33 Is the name of the network card

[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:26:f8:57 brd ff:ff:ff:ff:ff:ff
    inet 192.168.51.6/24 brd 192.168.51.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe26:f857/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 02:42:49:a9:d2:94 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever

2.2 Modify the configuration file

[root@localhost ~]# cd /etc/keepalived
[root@localhost keepalived]# vi keepalived.conf
global_defs {
	# 路由id:当前安装keepalived的节点主机标识符,保证全局唯一
	router_id keep_5
} v
rrp_instance VI_1 {
	# 表示状态是MASTER主机还是备用机BACKUP
	state MASTER
	# 该实例绑定的网卡
	interface ens33
	# 保证主备节点一致即可
	virtual_router_id 51
	# 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选
	priority 100
	# 主备之间同步检查时间间隔,单位秒
	advert_int 2
	# 认证权限密码,防止非法节点进入
authentication {
	auth_type PASS
	auth_pass 1111
} 
#	虚拟出来的ip,可以有多个(vip)
virtual_ipaddress {
	192.168.51.101
	}
}

2.3 Start the service

[root@localhost ~]# cd /usr/local/keepalived/sbin/
[root@localhost sbin]# ./keepalived

2.4 View operation

[root@localhost sbin]# ps -ef | grep keepalived
root      10384      1  0 16:11 ?        00:00:00 ./keepalived
root      10385  10384  0 16:11 ?        00:00:00 ./keepalived
root      10387   3963  0 16:12 pts/1    00:00:00 grep --color=auto keepalived
[root@localhost sbin]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:37:75:55 brd ff:ff:ff:ff:ff:ff
    inet 192.168.51.5/24 brd 192.168.51.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.51.101/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe37:7555/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 02:42:99:71:38:eb brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever

3 Standby machine configuration

3.1 View the name of the network card

inet 192.168.51.6/24 brd 192.168.51.255 scope global ens33

ens33 Is the name of the network card

[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:26:f8:57 brd ff:ff:ff:ff:ff:ff
    inet 192.168.51.6/24 brd 192.168.51.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe26:f857/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 02:42:49:a9:d2:94 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever

3.2 Modify the configuration file

[root@localhost ~]# cd /etc/keepalived
[root@localhost keepalived]# vi keepalived.conf
global_defs {
	# 路由id:当前安装keepalived的节点主机标识符,保证全局唯一
	router_id keep_6
} v
rrp_instance VI_1 {
	# 表示状态是MASTER主机还是备用机BACKUP
	state BACKUP
	# 该实例绑定的网卡
	interface ens33
	# 保证主备节点一致即可
	virtual_router_id 51
	# 权重低于MASTER
	priority 80
	# 主备之间同步检查时间间隔,单位秒
	advert_int 2
	# 认证权限密码,防止非法节点进入
authentication {
	auth_type PASS
	auth_pass 1111
} 
#	虚拟出来的ip,可以有多个(vip)
virtual_ipaddress {
	# 注意:主备两台的vip都是一样的,绑定到同一个vip
	192.168.51.101
	}
}

3.3 Start the service

[root@localhost ~]# cd /usr/local/keepalived/sbin/
[root@localhost sbin]# ./keepalived

3.4 View operation

[root@localhost etc]#  ps -ef | grep keepalived
root       9964      1  0 16:14 ?        00:00:00 ./keepalived
root       9965   9964  0 16:14 ?        00:00:00 ./keepalived
root      10011   3463  0 16:31 pts/1    00:00:00 grep --color=auto keepalived
[root@localhost etc]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:26:f8:57 brd ff:ff:ff:ff:ff:ff
    inet 192.168.51.6/24 brd 192.168.51.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe26:f857/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 02:42:49:a9:d2:94 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever

4 Registration Service

4.1 Copy files

[root@localhost etc]# cd /opt/module/software/keepalived-2.0.18/keepalived/etc/
[root@localhost etc]# ll
总用量 44
drwxrwxr-x. 2 ts   rvm     86 2月   1 15:31 init
drwxrwxr-x. 2 ts   rvm    135 2月   1 15:31 init.d
drwxrwxr-x. 2 ts   rvm     29 8月  16 2018 keepalived
-rw-r--r--. 1 root root 19576 2月   1 15:31 Makefile
-rw-rw-r--. 1 ts   rvm    181 8月  16 2018 Makefile.am
-rw-rw-r--. 1 ts   rvm  18377 7月  26 2019 Makefile.in
drwxrwxr-x. 2 ts   rvm     24 8月  16 2018 openrc
drwxrwxr-x. 2 ts   rvm     24 8月  16 2018 sysconfig
[root@localhost etc]# cp init.d/keepalived  /etc/init.d/
[root@localhost etc]# cp sysconfig/keepalived /etc/sysconfig/
cp:是否覆盖"/etc/sysconfig/keepalived"? y

4.2 Load configuration

[root@localhost etc]# systemctl daemon-reload

4.2 Commonly used commands

  • start up

    [root@localhost ~]# systemctl start keepalived
    
  • stop

    [root@localhost ~]# systemctl stop keepalived
    
  • Reboot

    [root@localhost ~]# systemctl restart keepalived
    

5 Function test

5.1 Virtual VIP access

Insert picture description here

5.2 Host access

Insert picture description here

5.3 Standby machine access

Insert picture description here

5.4 Host is down

1 主机Stop keepalivedService

[root@localhost etc]# systemctl stop keepalived

Insert picture description here

2 备用机Viewip信息

[root@localhost etc]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:26:f8:57 brd ff:ff:ff:ff:ff:ff
    inet 192.168.51.6/24 brd 192.168.51.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.51.101/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe26:f857/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 02:42:49:a9:d2:94 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever

inet 192.168.51.101/32 scope global ens33 Switch successfully

6 Related information

  • The blog post is not easy, everyone who has worked so hard to pay attention and praise, thank you

Guess you like

Origin blog.csdn.net/qq_15769939/article/details/113534257