CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài viết blog CFSDN này keepaliving+nginx ví dụ về phương pháp triển khai tính sẵn sàng cao được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.
1.Giới thiệu được lưu giữ.
Keepaliving ban đầu được thiết kế cho phần mềm cân bằng tải LVS để quản lý và giám sát trạng thái của từng nút dịch vụ trong hệ thống cụm LVS. Sau đó, nó đã bổ sung thêm chức năng VRRP để đạt được tính sẵn sàng cao. Ngoài việc quản lý phần mềm LVS, keepaliving còn có thể hỗ trợ các giải pháp có tính sẵn sàng cao cho các dịch vụ khác.
keepalive thực hiện chức năng sẵn sàng cao thông qua giao thức VRRP. VRRP (Giao thức dự phòng bộ định tuyến ảo) Giao thức dự phòng bộ định tuyến ảo. Mục đích của VRRP là giải quyết vấn đề lỗi duy nhất của định tuyến tĩnh. Nó có thể đảm bảo rằng khi các nút riêng lẻ ngừng hoạt động, toàn bộ mạng có thể hoạt động không bị gián đoạn.
2. Nguyên tắc chuyển đổi dự phòng có tính sẵn sàng cao được giữ nguyên.
Chuyển đổi dự phòng giữa các dịch vụ có tính sẵn sàng cao được duy trì được thực hiện thông qua VRRP. Khi dịch vụ được lưu giữ đang hoạt động, nút chính sẽ liên tục gửi tin nhắn nhịp tim (đa hướng) đến nút dự phòng để báo cho nút dự phòng biết rằng nó vẫn còn hoạt động.
Khi nút chính bị lỗi, thông báo nhịp tim không thể được gửi đến nút dự phòng nếu nút dự phòng không thể tiếp tục phát hiện nhịp tim từ nút chính. Nó sẽ gọi chương trình tiếp quản của riêng mình để tiếp quản các tài nguyên và dịch vụ IP của nút chính. Khi nút chính phục hồi, nút dự phòng sẽ giải phóng các tài nguyên và dịch vụ IP mà nó đã đảm nhận khi nút chính bị lỗi và quay trở lại vai trò dự phòng ban đầu.
3. Cài đặt nginx.
3.1. Nút chính (192.168.80.22).
3.1.1. Cài đặt công cụ biên dịch và file thư viện.
?
1
|
ngon quá
cài đặt
làm
zlib zlib-devel gcc-c++ libtool openssl openssl-devel
|
3.1.2. Cài đặt pcre.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
đĩa CD
/usr/local/develop/anginx
mất
-zxvf pcre-8.38.
mất
.gz
đĩa CD
pcre-8.38
.
/cấu hình
làm
&&
làm
cài đặt
pcre-config --phiên bản
|
3.1.3. Cài đặt nginx.
?
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
|
đĩa CD
/usr/local/develop/anginx
mất
-zxvf nginx-1.8.1.
mất
.gz
đĩa CD
nginx-1.8.1
.
/cấu hình
--tiền tố=
/usr/local/develop/anginx/máy chủ web/nginx
--với-http_stub_status_module --với-http_ssl_module --với-pcre=
/usr/local/develop/anginx/pcre-8
.38
làm
&&
làm
cài đặt
/usr/local/develop/anginx/webserver/nginx/sbin/nginx
-
v
-------------------------------------------------- ------
[root@hadoop02 máy chủ web]
phiên bản nginx: nginx
/1
.8.1
/usr/local/develop/anginx/webserver/nginx/sbin/nginx
-t
/usr/local/develop/anginx/webserver/nginx/sbin/nginx
/usr/local/develop/anginx/webserver/nginx/sbin/nginx
-s dừng lại
/usr/local/develop/anginx/webserver/nginx/sbin/nginx
-s tải lại
/usr/local/develop/anginx/webserver/nginx/sbin/nginx
-s mở lại
|
3.1.4.nginx cấu hình cơ bản.
?
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
|
chúng tôi
nginx.conf
quy trình_công_nhân 1;
Nhật ký pid
/nginx
.pid;
sự kiện {
kết nối_công_nhân 1024;
}
http {
bao gồm mime.types;
ứng dụng default_type
/octet-luồng
;
log_format chính
'$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
;
Nhật ký access_log
/truy cập
.log chính;
gửi tệp trên;
giữ_thời_gian_hết_sống 65;
thượng nguồn tomcat_pool{
máy chủ 192.168.80.22:8080 trọng lượng=4 max_fails=2 fail_timeout=30 giây;
máy chủ 192.168.80.22:8081 trọng lượng=4 max_fails=2 fail_timeout=30 giây;
}
máy chủ {
nghe 80;
tên_máy_chủ tomcat_pool;
vị trí / {
proxy_mật khẩu http:
//nhóm_tomcat
;
proxy_set_header Máy chủ $host;
proxy_set_header X-Địa chỉ IP thực $remote_addr;
proxy_set_header Chuyển tiếp X $proxy_add_x_forwarded_for;
}
lỗi_trang 500 502 503 504
/50 lần
.html;
vị trí =
/50 lần
.html {
gốc html;
}
}
|
3.2. Nút chờ (192.168.80.21).
Lưu ý: Phương pháp cài đặt giống như nút chính nginx.
4. Cài đặt giữ nguyên.
4.1. Nút chính (192.168.80.22).
?
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
|
ngon quá
cài đặt
giữ nguyên -y
/etc/init
.đ
/giữ nguyên
bắt đầu
------------------------------------------
[root@hadoop02 anginx]
Bắt đầu được giữ nguyên: [OK]
[root@hadoop02 anginx]
gốc 15723 1 0 00:59 ? 00:00:00
/usr/sbin/keepalived
-Đ
gốc 15724 15723 0 00:59 ? 00:00:00
/usr/sbin/keepalived
-Đ
gốc 15725 15723 0 00:59 ? 00:00:00
/usr/sbin/keepalived
-Đ
gốc 15731 15622 0 00:59 điểm
/1
00:00:00
va li
giữ nguyên
[root@hadoop02 anginx]
tiếng vọng
"/etc/init.d/keepalived bắt đầu"
>>
/vv/rc
.
địa phương
/etc/init
.đ
/giữ nguyên
dừng lại
chúng tôi
/etc/keepalived/keepalived
.conf
-------------------------------------------------- ---------
! Tập tin cấu hình
vì
giữ nguyên
định nghĩa toàn cục {
email thông báo {
acassen@tường lửa.loc
failover@tường lửa.loc
sysadmin@tường lửa.loc
}
email thông báo từ Alexandre.Cassen@firewall.loc
máy chủ smtp 192.168.200.1
smtp_connect_timeout 30
router_id lb01
}
vrrp_instance VI_1 {
chủ nhà nước
giao diện eth1
virtual_router_id 55
ưu tiên 150
quảng cáo_int 1
xác thực {
xác thực_loạiPASS
xác thực_mật khẩu máy chủ123
}
địa chỉ ip ảo {
192.168.80.100 dev eth1 nhãn eth1:1
}
}
................................................................. ........
|
Về hướng dẫn cấu hình:
- [router_id] là mã định danh định tuyến, phải là duy nhất trong mạng LAN.
- [vrrp_instance VI_1] {...} Đây là một phiên bản VRRP, xác định trạng thái hoạt động và sao lưu, giao diện, mức độ ưu tiên, xác thực và thông tin IP của dữ liệu được lưu giữ.
- [trạng thái] xác định vai trò của VRRP
- [giao diện] Xác định giao diện được sử dụng. Các card mạng được máy chủ của tôi sử dụng ở đây đều là eth1.
- [virtual_router_id] là ID bộ định tuyến ảo Trong một tập hợp các cấu hình được giữ nguyên, cài đặt chính và phụ là nhất quán.
- [ưu tiên] là số càng lớn thì mức độ ưu tiên càng lớn.
- [auth_type] là phương thức xác thực
- [auth_pass] là mật khẩu để xác thực
- [virtual_ipaddress] {...} Xác định địa chỉ IP ảo. Có thể định cấu hình nhiều địa chỉ IP. Ở đây tôi xác định nó là 192.168.80.100, được liên kết với giao diện mạng của eth1 và giao diện ảo eth1:1.
4.2. Nút dự phòng (192.168.80.21).
?
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
|
ngon quá
cài đặt
giữ nguyên -y
/etc/init
.đ
/giữ nguyên
bắt đầu
------------------------------------------
[root@hadoop02 anginx]
Bắt đầu được giữ nguyên: [OK]
[root@hadoop02 anginx]
gốc 15723 1 0 00:59 ? 00:00:00
/usr/sbin/keepalived
-Đ
gốc 15724 15723 0 00:59 ? 00:00:00
/usr/sbin/keepalived
-Đ
gốc 15725 15723 0 00:59 ? 00:00:00
/usr/sbin/keepalived
-Đ
gốc 15731 15622 0 00:59 điểm
/1
00:00:00
va li
giữ nguyên
[root@hadoop02 anginx]
tiếng vọng
"/etc/init.d/keepalived bắt đầu"
>>
/vv/rc
.
địa phương
/etc/init
.đ
/giữ nguyên
dừng lại
chúng tôi
/etc/keepalived/keepalived
.conf
-------------------------------------------------- ---------------
! Tập tin cấu hình
vì
giữ nguyên
định nghĩa toàn cục {
email thông báo {
acassen@tường lửa.loc
failover@tường lửa.loc
sysadmin@tường lửa.loc
}
email thông báo từ Alexandre.Cassen@firewall.loc
máy chủ smtp 192.168.200.1
smtp_connect_timeout 30
bộ định tuyến_id lb02
}
vrrp_instance VI_1 {
trạng thái SAO LƯU
giao diện eth1
virtual_router_id 55
ưu tiên 100
quảng cáo_int 1
xác thực {
xác thực_loạiPASS
xác thực_mật khẩu máy chủ123
}
địa chỉ ip ảo {
192.168.80.100 dev eth1 nhãn eth1:1
}
}
................................................................. ..........
|
5. Kiểm tra.
5.1 Bắt đầu dịch vụ duy trì của các nút hoạt động và dự phòng.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
/etc/init
.đ
/giữ nguyên
bắt đầu
-------------------------------------
[root@hadoop02 anginx]
gốc 15788 1 0 01:09 ? 00:00:00
/usr/sbin/keepalived
-Đ
gốc 15790 15788 0 01:09 ? 00:00:00
/usr/sbin/keepalived
-Đ
gốc 15791 15788 0 01:09 ? 00:00:00
/usr/sbin/keepalived
-Đ
gốc 15807 15622 0 01:33 điểm
/1
00:00:00
va li
giữ nguyên
[root@hadoop02 anginx]
/etc/init
.đ
/giữ nguyên
bắt đầu
------------------------------
[root@hadoop01 ~]
gốc 11542 1 0 01:30 ? 00:00:00
/usr/sbin/keepalived
-Đ
gốc 11544 11542 0 01:30 ? 00:00:00
/usr/sbin/keepalived
-Đ
gốc 11545 11542 0 01:30 ? 00:00:00
/usr/sbin/keepalived
-Đ
gốc 11550 11512 0 01:33 điểm
/1
00:00:00
va li
giữ nguyên
[root@hadoop01 ~]
|
5.2. Truy cập dịch vụ thông qua IP ảo.
http://192.168.80.100/session-redis-demo/ 。

5.3. Dừng dịch vụ lưu giữ nút chính.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
/etc/init
.đ
/giữ nguyên
dừng lại
địa chỉ ip
------------------------------------------
[root@hadoop01 ~]
1: lo: mtu 65536 qdisc trạng thái noqueue KHÔNG XÁC ĐỊNH
liên kết
/vòng lặp lại
00:00:00:00:00:00 Brd 00:00:00:00:00:00
inet 127.0.0.1
/8
phạm vi máy chủ lo
inet6 ::1
/128
phạm vi máy chủ
valid_lft mãi mãi preferred_lft mãi mãi
2: eth1: mtu 1500 qdisc pfifo_fast trạng thái LÊN qlen 1000
liên kết
/ ê-te
00:50:56:38:e5:46 brd ff:ff:ff:ff:ff:ff
mạng 192.168.80.21
/24
brd 192.168.80.255 phạm vi toàn cầu eth1
mạng 192.168.80.100
/32
phạm vi toàn cầu eth1:1
inet6 fe80::250:56ff:fe38:e546
/64
liên kết phạm vi
valid_lft mãi mãi preferred_lft mãi mãi
[root@hadoop01 ~]
|
5.4 Tiếp tục truy cập dịch vụ qua IP ảo.
http://192.168.80.100/session-redis-demo/ 。

Tích hợp 6.keepalive + nginx.
Mô tả: Viết tập lệnh daemon nginx Nếu dịch vụ nginx không thành công, hãy dừng dịch vụ được lưu giữ của nút hiện tại. Tự động chuyển sang nút dự phòng.
6.1 Viết tập lệnh daemon nginx.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
chúng tôi
nginx_check.sh
--------------------------------------
#!/bin/bash
trong khi
ĐÚNG VẬY
LÀM
nếu như
[ $(
netstat
-telnp|
va li
nginx|
nhà vệ sinh
-l) -
nó là
1 ]
sau đó
/etc/init
.đ
/giữ nguyên
dừng lại
là
ngủ
2
xong
sửa đổi
u+x nginx_check.sh
không có gì
/usr/local/develop/anginx/shell/nginx_check
.sh &
|
6.2. Dừng dịch vụ nginx của nút chính.
?
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
|
/usr/local/develop/anginx/webserver/nginx/sbin/nginx
-s dừng lại
[root@hadoop02 ~]
gốc 15915 1 0 01:51 ? 00:00:00
/bin/bash
/usr/local/develop/anginx/shell/nginx_check
.sh
gốc 16516 15753 0 01:54 điểm
/5
00:00:00
va li
nginx
[root@hadoop02 ~]
địa chỉ ip
--------------------------------------
[root@hadoop01 vỏ]
1: lo: mtu 65536 qdisc trạng thái noqueue KHÔNG XÁC ĐỊNH
liên kết
/vòng lặp lại
00:00:00:00:00:00 Brd 00:00:00:00:00:00
inet 127.0.0.1
/8
phạm vi máy chủ lo
inet6 ::1
/128
phạm vi máy chủ
valid_lft mãi mãi preferred_lft mãi mãi
2: eth1: mtu 1500 qdisc pfifo_fast trạng thái LÊN qlen 1000
liên kết
/ ê-te
00:50:56:38:e5:46 brd ff:ff:ff:ff:ff:ff
mạng 192.168.80.21
/24
brd 192.168.80.255 phạm vi toàn cầu eth1
mạng 192.168.80.100
/32
phạm vi toàn cầu eth1:1
inet6 fe80::250:56ff:fe38:e546
/64
liên kết phạm vi
valid_lft mãi mãi preferred_lft mãi mãi
[root@hadoop01 vỏ]
/usr/local/develop/anginx/webserver/nginx/sbin/nginx
/etc/init
.đ
/giữ nguyên
bắt đầu
|
Trên đây là toàn bộ nội dung bài viết này hi vọng nó sẽ giúp ích cho việc học của mọi người và cũng mong mọi người ủng hộ mình.
Liên kết gốc: https://www.cnblogs.com/itall/p/10913599.html.
Cuối cùng, bài viết này về các ví dụ về phương pháp triển khai tính sẵn sàng cao của keepaliving+nginx kết thúc tại đây. blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!