centos7+LVS+KeepAlived实现Nginx服务的高可用性
1
2
3
|
systemctl stop firewalld
systemctl disable firewalld
hostnamectl
set
-
hostname
Nginx01
|
1
2
|
vim
/etc/selinx/config
SELINUX=Disabled
|
1
|
yum
install
wget
|
1
|
yum
install
nginx
|
1
|
yum
install
http:
//nginx
.org
/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0
.el7.ngx.noarch.rpm
|
1
|
yum
install
-y nginx
|
1
|
rpm -qa |
grep
nginx
|
1
|
find
/ -name nginx
|
1
|
systemctl start nginx
|
1
|
vim
/etc/nginx/nginx
.conf
|
1
|
/etc/naginx/conf
.d
/defautlt
.conf
|
1
|
/usr/share/nginx/html/index
.html
|
1
|
vim index.html
|
1
|
systemctl restart nginx
|
1
|
yum
install
http:
//nginx
.org
/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0
.el7.ngx.noarch.rpm
|
1
|
yum
install
nginx
|
1
|
scp
/usr/share/nginx/html/index
.html 10.10.1.5:
/etc/share/nginx/html/index
.html
|
1
|
vim
/usr/share/nginx/html/index
.html
|
1
|
systemctl restart nginx
|
1
|
yum
install
-y ipvsadm
|
1
|
yum
install
-y gcc openssl openssl-devel
|
1
|
yum
install
keepalived
|
1
|
cp
/etc/keepalived/keepalived
.conf
/etc/keepalived/keepalived
.conf.bak
|
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
! Configuration File
for
keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.200.16
192.168.200.17
192.168.200.18
}
}
virtual_server 192.168.200.100 443 {
delay_loop 6
lb_algo rr
lb_kind NAT
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.201.100 443 {
weight 1
SSL_GET {
url {
path /
digest ff20ad2481f97b1754ef3e12ecd3a9cc
}
url {
path
/mrtg/
digest 9b3a0c85a887a256d6939da88aabd8cd
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 10.10.10.2 1358 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
sorry_server 192.168.200.200 1358
real_server 192.168.200.2 1358 {
weight 1
HTTP_GET {
url {
path
/testurl/test
.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path
/testurl2/test
.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path
/testurl3/test
.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.200.3 1358 {
weight 1
HTTP_GET {
url {
path
/testurl/test
.jsp
digest 640205b7b0fc66c1ea91c463fac6334c
}
url {
path
/testurl2/test
.jsp
digest 640205b7b0fc66c1ea91c463fac6334c
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 10.10.10.3 1358 {
delay_loop 3
lb_algo rr
lb_kind NAT
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.200.4 1358 {
weight 1
HTTP_GET {
url {
path
/testurl/test
.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path
/testurl2/test
.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path
/testurl3/test
.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.200.5 1358 {
weight 1
HTTP_GET {
url {
path
/testurl/test
.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path
/testurl2/test
.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path
/testurl3/test
.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
|
1
|
echo
>
/etc/keepalived/keepalived
.conf
|
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
37
38
39
40
41
42
43
44
45
46
47
48
49
|
! Configuration File
for
keepalived
global_defs {
router_id lvs_clu_1
}
virrp_sync_group Prox {
group {
mail
}
}
vrrp_instance mail {
state MASTER
interface eth0
lvs_sync_daemon_interface eth0
virtual_router_id 50
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.6.15
}
}
virtual_server 192.168.6.15 80 {
delay_loop 6
lb_algo wlc
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.6.10 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.6.11 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
|
1
2
|
cat
/proc/sys/net/ipv4/ip_forward
echo
1 >
/proc/sys/net/ipv4/ip_forward
|
1
|
systemctl start keepalived
|
1
|
ipvsadm
|
1
2
3
|
yum
install
-y ipvsadm
yum
install
-y gcc openssl openssl-devel
yum
install
keepalived
|
1
|
scp
/etc/keepalived/keepalived
.conf 192.168.6.13:
/etc/keepalived/keepalived
.conf
|
1
2
|
cat
/proc/sys/net/ipv4/ip_forward
echo
1 >
/proc/sys/net/ipv4/ip_forward
|
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
37
38
39
40
41
42
43
44
45
46
47
48
49
|
! Configuration File
for
keepalived
global_defs {
router_id lvs_clu_1
}
virrp_sync_group Prox {
group {
mail
}
}
vrrp_instance mail {
state BACKUP
interface eth0
lvs_sync_daemon_interface eth0
virtual_router_id 50
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.6.15
}
}
virtual_server 192.168.6.15 80 {
delay_loop 6
lb_algo wlc
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.6.10 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.6.11 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
|
1
|
systemctl start keepalived
|
1
|
systemct status keepalived
|
1
|
Tail -f
/var/log/message
|
1
|
Ip a show
|
1
|
Vim keepalived 修改网卡配置 eth0--->修改为eth016777984
|
1
2
|
Systemctl restart keepalived
Systemctl status keepalived
|
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
|
vim realserver
#!/bin/bash
# chkconfig: 2345 85 35
# Description: Start real server with host boot
VIP=192.168.6.15
function
start() {
ifconfig
lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
echo
1 >
/proc/sys/net/ipv4/conf/lo/arp_ignore
echo
2 >
/proc/sys/net/ipv4/conf/lo/arp_announce
echo
1 >
/proc/sys/net/ipv4/conf/all/arp_ignore
echo
2 >
/proc/sys/net/ipv4/conf/all/arp_announce
echo
“Real Server $(
uname
-n) started”
}
function
stop() {
ifconfig
lo:0 down
ifconfig
lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
echo
0 >
/proc/sys/net/ipv4/conf/lo/arp_ignore
echo
0 >
/proc/sys/net/ipv4/conf/lo/arp_announce
echo
0 >
/proc/sys/net/ipv4/conf/all/arp_ignore
echo
0 >
/proc/sys/net/ipv4/conf/all/arp_announce
echo
“Real Server $(
uname
-n) stopped”
}
case
$1
in
start)
start
;;
stop)
stop
;;
*)
echo
“Usage: $0 {start|stop}”
exit
1
esac
|
1
|
chmod
a+x realserver
|
1
2
|
systemctl start realserver
.
/realserver
start
|
1
|
scp
realserver 192.168.6.11:
/root/realserver
|
1
|
ls
-l
|
1
|
.
/realserver
start
|
1
2
3
|
Ipvsadm
systemctl status keepalived
查看lvs02的keepalived的状态
|
1
2
|
r然后
Ipvsadm -l
|
1
|
ip addr
|
1
|
Systemctl stop nginx
|
1
|
Systemctl status keepalived
|
1
|
keepalived
|