sách gpt4 ăn đã đi

Triển khai cụm có tính sẵn sàng cao của Nginx+Keepalive

In lại Tác giả: Tôi là chú chim nhỏ Thời gian cập nhật: 2023-03-09 14:31:51 30 4
mua khóa gpt4 giày nike

chữ.

Công nghệ cân bằng tải rất quan trọng đối với một website, đặc biệt là cụm máy chủ web của một website lớn! Kiến trúc cân bằng tải tốt có thể đạt được môi trường chuyển đổi dự phòng và có tính sẵn sàng cao, tránh các điểm lỗi duy nhất và đảm bảo trang web hoạt động lành mạnh và liên tục. Khi sử dụng Nginx làm proxy ngược hoặc cân bằng tải, Nginx được sử dụng làm lối vào. Nếu Nginx ngừng hoạt động, tất cả các dịch vụ sẽ không được cung cấp bình thường và ảnh hưởng sẽ rất nghiêm trọng.

Để tránh những ảnh hưởng nghiêm trọng do máy chủ cân bằng tải ngừng hoạt động, cần thiết lập một máy dự phòng. Cả máy chủ chính và máy dự phòng đều chạy các chương trình giám sát tính sẵn sàng cao (High Availability) để theo dõi trạng thái hoạt động của nhau bằng cách truyền tải các thông tin như “Tôi còn sống”. Khi máy dự phòng không thể nhận được thông tin đó trong một khoảng thời gian nhất định, nó sẽ chiếm IP dịch vụ của máy chủ chính và tiếp tục cung cấp dịch vụ cân bằng tải khi người quản lý dự phòng nhận được thông tin như “Tôi còn sống” từ người quản lý chính; , nó sẽ giải phóng địa chỉ IP dịch vụ và máy chủ chính bắt đầu cung cấp lại dịch vụ cân bằng tải.

Tính sẵn sàng cao (High Availability) là một trong những yếu tố phải được xem xét trong thiết kế kiến ​​trúc hệ thống phân tán. Nó thường đề cập đến việc giảm thời gian khi hệ thống không thể cung cấp dịch vụ thông qua thiết kế. Nếu một hệ thống luôn có thể cung cấp dịch vụ thì tính sẵn sàng là 100%. Tuy nhiên, chúng tôi không thể đảm bảo rằng hệ thống sẽ không bao giờ gặp sự cố, vì vậy chúng tôi chỉ có thể giảm thiểu tác động của lỗi hệ thống nhiều nhất có thể thông qua thiết kế.

Do việc mở rộng kinh doanh, số lượt truy cập vào trang web tiếp tục tăng và tải ngày càng cao. Lúc này cần thiết phải đặt cân bằng tải nginx trên web front-end, đồng thời kết hợp giữ lại để đạt được tính sẵn sàng HA cao cho nginx front-end.

Trước đây, tôi đã chia sẻ "Ứng dụng cơ bản của Nginx trên Linux" và "Phần mềm có tính sẵn sàng cao trong Linux - Kiến thức cơ bản về Keepaliving" hôm nay tôi sẽ chỉ chia sẻ việc triển khai cụm tính sẵn sàng cao của Nginx + Keepaliving.

Sơ đồ kiến ​​trúc cụm Master-Slave

Tuyên bố về môi trường
tên máy chủ IP minh họa
Khách hàng-01 172.16.70.171 Máy kiểm tra khách hàng
Giữ Master 172.16.70.181 máy chủ chính được giữ lại (bộ cân bằng tải nginx master)
Giữ lại sao lưu 172.16.70.182 máy chủ dự phòng được giữ lại (cân bằng tải dự phòng nginx)
VIP 172.16.70.183 địa chỉ ảo vrrp HA, có thể có nhiều IP
Web1 172.16.70.191 Máy chủ web phụ trợ 1 (trang nginx)
Web2 172.16.70.192 Máy chủ sao lưu web phụ trợ 2 (trang nginx)

Chuẩn bị môi trường.

                          # Tất cả các máy chủ triển khai được định cấu hình lần này # cat /etc/redhat-release CentOS Linux Release 7.9.2009 (Core) # uname -r 3.10.0-1160.83.1.el7.x86_64 # systemctl stop tường lửa # sed -i 's /^SELINUX=.*/SELINUX=disabled/' /etc/sysconfig/selinux # setenforce 0 # ntpdate 0.centos.pool.ntp.org # yum cài đặt công cụ mạng vim wget Curl -y

                        

 Xây dựng máy chủ web phụ trợ

  • Hoạt động tương tự như hoạt động và chờ
                          # Tải xuống web-01 ví dụ [root@web-01 ~]# wget https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.2-1.el7.ngx.x86_64.rpm [root@web-01 ~]# rpm -ivh nginx-1.20.2-1.el7.ngx.x86_64.rpm [root@web-01 ~]# nginx -v phiên bản nginx: nginx/1.20.2 [root@web-01 ~]# #echo "`hostname` `ifconfig ens33 |sed -n 's#.*inet \(.*\)netmask.*#\1#p'`" > /usr/share/nginx/html/index.html [root@web-01 ~]# cat /usr/share/nginx/html/index.html web-01 172.16.70.191 [root@web-01 ~]# nginx -t nginx: tệp cấu hình /etc/nginx/nginx.conf cú pháp ổn nginx: tệp cấu hình /etc/nginx/nginx.conf thử nghiệm thành công [root@web-01 ~]# systemctl start nginx [root@web-01 ~]# systemctl enable nginx [root@web-01 ~]# netstat -ntupl | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 10687/nginx: master [root@web-01 ~]# ps -ef | grep nginx root 10687 1 0 16:36 ? 00:00:00 nginx: tiến trình chính /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 10688 10687 0 16:36 ? 00:00:00 nginx: tiến trình công nhân nginx 10689 10687 0 16:36 ? 00:00:00 nginx: tiến trình công nhân nginx 10690 10687 0 16:36 ? 00:00:00 nginx: tiến trình công nhân nginx 10691 10687 0 16:36 ? 00:00:00 nginx: root tiến trình công nhân 10761 10586 0 16:45 điểm/1 00:00:00 grep --color=auto nginx # Client-01 测试访问 [root@Client-01 ~]# Curl 172.16.70.191 web-01 172.16.70.191

                        

 Truy cập kiểm tra trình duyệt http://ip/.

  。

Triển khai bộ cân bằng tải nginx trên máy chủ Keep

  • Hoạt động tương tự như hoạt động và chờ
                          # Ở đây chúng tôi lấy KeepMaster làm ví dụ # Cài đặt và triển khai nginx [root@KeepMaster ~]# wget https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-2.el7.ngx .x86_64. vòng/phút [root@KeepMaster ~]# vòng/phút -vih nginx-1.18.0-2.el7.ngx.x86_64.rpm [root@KeepMaster ~]# nginx -v phiên bản nginx: nginx/1.18.0 # Tạo mới [root@KeepMaster ~]# cat /etc/nginx/conf . d/web.conf web ngược dòng { máy chủ 172.16.70.191:80 Weight=1 max_fails=3 Fail_timeout=20s; máy chủ 172.16.70.192:80 Weight=2 max_fails=3 Fail_timeout=20s } # trọng lượng tỷ lệ thuận với tỷ lệ truy cập, giá trị mặc định là 1 # max_fails là số lần thất bại được phép, giá trị mặc định là 1 # Fail_timeout Khi max_fails lần không thành công, hãy tạm dừng thời gian phân phối yêu cầu đến máy chủ phụ trợ { listen 80; server_name www.zhangwen Cheng.org; vị trí / { proxy_pass http://web; proxy_set_header HOST $http_host; proxy_set_header X-Real-IP $remote_addr -t nginx: tệp cấu hình Cú pháp /etc/nginx/nginx.conf ổn nginx: tệp cấu hình /etc/nginx/nginx.conf kiểm tra thành công [root@KeepMaster ~]# systemctl start nginx [root@KeepMaster ~]# systemctl kích hoạt nginx [root@KeepMaster ~]# ps -ef | grep nginx gốc 1677 1 0 17:28 ? nginx: quy trình tổng thể /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 1678 1677 0 17:28 ? 00:00:00 nginx: root quy trình công nhân 1708 1444 0 17:33 pts/0 00:00 :00 grep --color=auto nginx [root@KeepMaster ~]# netstat -tnpl | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1677/nginx: master

                        

Máy test Client-01 kiểm tra cân bằng tải

  • Cân bằng tải nginx trên máy chủ chính và phụ của Keep
                          # Thêm độ phân giải máy chủ trên máy thử nghiệm, IP máy chủ KeepMaster/KeepBackup [root@Client-01 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16 .70.181 www.zhangwen Cheng.org 172.16.70.182 www.zhangwenchen.org # Trong quá trình thử nghiệm, hãy tắt các nút Keep lần lượt. Nếu bạn vẫn có thể truy cập và thấy hiệu ứng quay vòng sau khi tắt, điều đó có nghĩa là cụm cân bằng tải nginx đã được thiết lập thành công. [root@Client-01 ~]#curl www.zhangwenchen.org web-01 172.16.70.191 [root@Client-01 ~]#curl www.zhangwenchen.org web-02 172.16.70.192 [root@Client-01 ~] #curl www.zhangwen Cheng.org web-02 172.16.70.192 [root@Client-01 ~]#curl www.zhangwen Cheng.org web-01 172.16.70.191

                        

Triển khai được lưu giữ trên máy chủ Keep

  • Hoạt động tương tự như hoạt động và chờ
                          [root@KeepMaster ~]# yum install -y openssl openssl-devel libnl libnl-devel gcc [root@KeepMaster ~]# mkdir /data/apps/keepalived -p [root@KeepMaster ~]# wget --no-check-certificate http://www.keepalived.org/software/keepalived-2.2.4.tar.gz [root@KeepMaster ~]# tar -xf keepalived-2.2.4.tar.gz [root@KeepMaster ~]# cd keepalived-2.2.4 [root@KeepMaster keepalived-2.2.4]# ls aclocal.m4 autogen.sh build-aux ChangeLog configure.ac COPYING INSTALL keepalived.spec.in m4 Makefile.in snap tools TÁC GIẢ bin_install build_setup configure NGƯỜI ĐÓNG GÓP doc keepalived lib Makefile.am README.md TODO [root@KeepMaster keepalived-2.2.4]# ./configure --prefix=/data/apps/keepalived .... .... # Lỗi không thể sửa Cấu hình Keepalived ------------------------ Phiên bản Keepalived: 2.2.4 Trình biên dịch: gcc gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44) Cờ tiền xử lý: -D_GNU_SOURCE Cờ biên dịch: -g -g -O2 -Wextra -Wunused -Wstrict-prototypes -Wabi -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wdouble-promotion \ -Wfloat-equal -Wframe-larger-than=5120 -Winit-self -Winline -Winvalid-pch -Wjump-misses-init -Wlogical-op -Wmissing-declarations -Wmissing-field-initializers -Wmissing-include-dirs \ -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Woverlength-strings -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-overflow=4 -Wsuggest-attribute=format \ -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsync-nand -Wtrampolines -Wundef -Wuninitialized -Wunknown-pragmas -Wunsafe-loop-optimizations -Wunsuffixed-float-constants -Wvariadic-macros \ -Wwrite-strings -fPIE -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -O2 Cờ liên kết: -pie -Wl,-z,relro -Wl,-z,now Thư viện bổ sung: -lm -lcrypto -lssl -lnl Sử dụng IPVS Framework: Có Sử dụng IPVS libnl: Có Thuộc tính đồng bộ hóa IPVS: Không Thống kê 64 bit IPVS: Không Hỗ trợ biểu thức chính quy HTTP_GET: Không Hỗ trợ ổ cắm fwmark: Có Sử dụng VRRP Framework: Có Sử dụng VRRP VMAC: Có Sử dụng xác thực VRRP: Có Với track_process: Có Với linkbeat: Có Sử dụng BFD Framework: Không Hỗ trợ vrrp SNMP: Không Hỗ trợ trình kiểm tra SNMP: Không Hỗ trợ SNMP RFCv2: Không Hỗ trợ SNMP RFCv3: Không Hỗ trợ DBUS: Không Sử dụng đầu ra JSON: Không Phiên bản libnl: 1 Sử dụng IPv4 devconf: Không Sử dụng iptables: Không Sử dụng nftables: Không Kiểu init: systemd Thông báo systemd: Không Kiểm tra cấu hình nghiêm ngặt: Không Tài liệu xây dựng: Không Tùy chọn thời gian chạy mặc định : -D [root@KeepMaster keepalived-2.2.4]# make -j 4 && make install [root@KeepMaster keepalived-2.2.4]# ls aclocal.m4 bin build_setup config.status NGƯỜI ĐÓNG GÓP CÀI ĐẶT keepalived.spec.in Makefile README TODO AUTHOR bin_install ChangeLog configure COPYING keepalived lib Makefile.am README.md tools autogen.sh build-aux config.log configure.ac doc keepalived.spec m4 Makefile.in snap [root@KeepMaster keepalived-2.2.4]# cp keepalived/keepalived /usr/local/sbin/ -a [root@KeepMaster keepalived-2.2.4]# keepalived -v Keepalived v2.2.4 (21/08,2021) Bản quyền (C) 2001-2021 Alexandre Cassen,  Được xây dựng với các tiêu đề hạt nhân cho Linux 3.10.0 Chạy trên Linux 3.10.0-1160.83.1.el7.x86_64 #1 SMP Thứ tư, ngày 25 tháng 1 năm 2023 lúc 16:41:43 UTC Bản phân phối: CentOS Linux 7 (Core) tùy chọn cấu hình: --prefix=/data/apps/keepalived Tùy chọn cấu hình: LVS VRRP VRRP_AUTH VRRP_VMAC OLD_CHKSUM_COMPAT INIT=systemd Tùy chọn hệ thống: VSYSLOG LIBNL1 RTA_ENCAP RTA_EXPIRES RTA_PREF FRA_SUPPRESS_PREFIXLEN FRA_TUN_ID RTAX_CC_ALGO RTAX_QUICKACK RTA_VIA IFA_FLAGS \ NET_LINUX_IF_H_COLLISION LIBIPTC_LINUX_NET_IF_H_COLLISION LIBIPVS_NETLINK IFLA_LINK_NETNSID GLOB_BRACE GLOB_ALTDIRFUNC INET6_ADDR_GEN_MODE SO_MARK [root@KeepMaster keepalived-2.2.4]# cd /data/apps/keepalived/ [root@KeepMaster keepalived]# ls bin etc sbin share [root@KeepMaster keepalived]# mv etc/keepalived/keepalived.conf etc/keepalived/keepalived.conf_bak [root@KeepMaster keepalived]# vim etc/keepalived/keepalived.conf ! Tệp cấu hình cho 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_skip_check_adv_addr vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_script chk_nginx { script "/data/apps/keepalived/chk_nginx.sh" interval 2 weight -5 } vrrp_instance VI_1 { state MASTER # 备服务器这为 BACKUP interface ens33 virtual_router_id 51 priority 110 # xác thực 备服务器这小于110 advert_int 1 xác thực { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.16.70.183 } track_script { chk_nginx } }sh" interval 2 trọng lượng -5 } vrrp_instance VI_1 { state MASTER # Máy chủ dự phòng là giao diện BACKUP ens33 virtual_router_id 51 mức độ ưu tiên 110 # Máy chủ dự phòng nhỏ hơn 110 xác thực advert_int 1 { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.16.70.183 } track_script { chk_nginx } }sh" interval 2 Weight -5 } vrrp_instance VI_1 { state MASTER # Máy chủ dự phòng là giao diện BACKUP ens33 virtual_router_id 51 mức độ ưu tiên 110 # Máy chủ dự phòng nhỏ hơn 110 xác thực advert_int 1 { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.16.70.183 } track_script { chk_nginx } }

                        

Mức độ ưu tiên sẽ không tiếp tục tăng hoặc giảm. Phạm vi ưu tiên cuối cùng là [1,254]. Sẽ không có mức độ ưu tiên nào nhỏ hơn hoặc bằng 0 hoặc mức độ ưu tiên lớn hơn hoặc bằng 255. Định cấu hình nopreempt trong vrrp_instance của nút MASTER Khi nó phục hồi bất thường, nó sẽ không được ưu tiên ngay cả khi mức ưu tiên của nó cao hơn. Điều này có thể tránh được việc chuyển đổi không cần thiết trong các trường hợp thông thường.

tập lệnh phát hiện nginx

Viết tập lệnh để xác định xem nginx cục bộ có bình thường hay không. Nếu NginX được phát hiện là bất thường, hãy tự động khởi động lại nginx. Đợi 2 giây để xác minh lại. Nếu vẫn không thành công, đừng thử lại. Tập lệnh này phải hợp lệ khi dịch vụ được lưu giữ đang chạy! Nếu dịch vụ được giữ nguyên bị tắt trước tiên thì dịch vụ nginx không thể được khởi động tự động sau khi tắt.

                          [root@KeepMaster keepalived]# cat chk_nginx.sh #!/bin/bash chk=$(ps -C nginx --no-heading|wc -l) nếu [ "${chk}" = "0" ]; sau đó systemctl khởi động nginx sleep 2 chk=$(ps -C nginx --no-heading|wc -l) nếu [ "${chk}" = "0" ]; sau đó systemctl dừng keepalived fi fi [root@KeepMaster keepalived]# chmod +x chk_nginx.sh


                        

Máy test Client-01 xác minh VIP

  • VIP trên máy chủ Keep
                          [root@Client-01 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16.70.183 www.zhangwencheng.org [root@Client-01 ~]# curl www.zhangwencheng.org web-02 172.16.70.192 [root@Client-01 ~]# curl www.zhangwencheng.org web-02 172.16.70.192 [root@Client-01 ~]# curl www.zhangwencheng.org web-01 172.16.70.191 [root@Client-01 ~]# curl www.zhangwencheng.org web-02 172.16.70.192

                        

Kiểm tra chuyển đổi dự phòng

                          #手动关闭Master机器上的nginx服务,最多2秒钟后就会自启动 [root@KeepMaster ~]# systemctl stop nginx [root@KeepMaster ~]# ps -ef | egrep 'nginx|keepaliving' gốc 57266 1 0 16:21 ? 00:00:00 /data/apps/keepaliving/sbin/keepaliving -f /data/apps/keepaliving/etc/keepaliving/keepaliving.conf -D root 57267 57266 0 16:21 ? 00:00:01 /data/apps/keepalived/sbin/keepalived -f /data/apps/keepalived/etc/keepalived/keepalived.conf -D root 60019 1 0 16:42 ? 00:00:00 nginx: tiến trình chính /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 60020 60019 0 16:42 ? 00:00:00 nginx: tiến trình công nhân root 60027 1444 0 16:42 điểm/0 00:00:00 grep -E --color=auto nginx|keepalived [root@KeepMaster ~]# ip a 1: lo:  mtu 65536 qdisc noqueue trạng thái KHÔNG XÁC ĐỊNH nhóm mặc định qlen 1000 liên kết/vòng lặp 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 valid_lft mãi mãi preferred_lft mãi mãi inet6 ::1/128 phạm vi máy chủ valid_lft mãi mãi preferred_lft mãi mãi 2: ens33:  mtu 1500 qdisc pfifo_fast trạng thái UP nhóm mặc định qlen 1000 liên kết/ether 00:0c:29:a1:82:4e brd ff:ff:ff:ff:ff:ff inet 172.16.70.181/24 brd 172.16.70.255 phạm vi toàn cục noprefixroute ens33 valid_lft mãi mãi preferred_lft mãi mãi inet 172.16.70.183/32 phạm vi toàn cầu ens33 valid_lft mãi mãi preferred_lft mãi mãi inet6 fe80::7726:d409:2cf4:babd/64 phạm vi liên kết tạm thời noprefixroute dadfailed valid_lft mãi mãi preferred_lft mãi mãi inet6 fe80::833:43b:7d2:6e4c/ 64 phạm vi liên kết tạm thời noprefixroute dadfailed valid_lft mãi mãi preferred_lft mãi mãi inet6 fe80::c2be:590b:1ae6:42e3/64 liên kết phạm vi noprefixroute valid_lft mãi mãi ưa thích_lft mãi mãi #手动关闭Master机器上的keepaliving服务,已经发现没VIP了 [root@KeepMaster ~]# systemctl stop keepaliving [root@KeepMaster ~]# ps -ef | egrep 'nginx|keepaliving' gốc 60019 1 0 16:42 ? 00:00:00 nginx: quy trình tổng thể /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 60020 60019 0 16:42 ? 00:00:00 nginx: tiến trình công nhân root 60348 1444 0 16:45 điểm/0 00:00:00 grep -E --color=auto nginx|keepalived [root@KeepMaster ~]# ip a 1: lo:  mtu 65536 qdisc noqueue trạng thái KHÔNG XÁC ĐỊNH nhóm mặc định qlen 1000 liên kết/vòng lặp 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 valid_lft mãi mãi preferred_lft mãi mãi inet6 ::1/128 phạm vi máy chủ valid_lft mãi mãi preferred_lft mãi mãi 2: ens33:  mtu 1500 qdisc pfifo_fast trạng thái UP nhóm mặc định qlen 1000 liên kết/ether 00:0c:29:a1:82:4e brd ff:ff:ff:ff:ff:ff inet 172.16.70.181/24 brd 172.16.70.255 phạm vi toàn cục noprefixroute ens33 valid_lft mãi mãi preferred_lft mãi mãi inet6 fe80::7726:d409:2cf4:babd/64 phạm vi liên kết tạm thời noprefixroute dadfailed valid_lft mãi mãi preferred_lft mãi mãi inet6 fe80::833:43b:7d2:6e4c/64 phạm vi liên kết tạm thời noprefixroute dadfailed valid_lft mãi mãi preferred_lft mãi mãi inet6 fe80: :c2be:590b:1ae6:42e3/64 scope link noprefixroute valid_lft forever preferred_lft forever [root@KeepMaster keepalived]# tail /var/log/messages 07/03 17:01:01 Keepalived-01 systemd: Đã bắt đầu Phiên 27 của người dùng root. 07/03 17:01:28 Keepalived-01 Keepalived[60703]: Đang dừng 07/03 17:01:28 Keepalived-01 systemd: Đang dừng LVS và VRRP High Availability Monitor... 07/03 17:01:28 Keepalived-01 Keepalived_vrrp[60704]: (VI_1) đã gửi 0 ưu tiên 07/03 17:01:28 Keepalived-01 Keepalived_vrrp[60704]: (VI_1) đang xóa VIP. 07/03 17:01:28 Keepalived-01 NetworkManager[570]:  [1678179688.0176] policy: set-hostname: tên máy chủ hiện tại đã được thay đổi bên ngoài NetworkManager: 'KeepMaster' 07/03 17:01:29 Keepalived-01 Keepalived_vrrp[60704]: Đã dừng - đã sử dụng (self/children) 0,005506/0,797936 thời gian người dùng, 0,172766/0,818969 thời gian hệ thống 07/03 17:01:29 Keepalived-01 Keepalived[60703]: Sử dụng CPU (self/children) user: 0,000000/0,803442 hệ thống: 0,001394/0,994146 07/03 17:01:29 Keepalived-01 Keepalived[60703]: Đã dừng Keepalived v2.2.4 (21/08,2021) 07/03 17:01:29 Keepalived-01 systemd: Đã dừng LVS và VRRP High Availability Monitor

                        
  • KeepBackup kiểm tra, VIP đã bị chiếm
                          [root@KeepBackup keepalived]# ps -ef | egrep 'nginx|keepalived' root 65036 1 0 17:01 ? 00:00:00 /data/apps/keepalived/sbin/keepalived -f /data/apps/keepalived/etc/keepalived/keepalived.conf -D root 65037 65036 0 17:01 ? 00:00:00 /data/apps/keepalived/sbin/keepalived -f /data/apps/keepalived/etc/keepalived/keepalived.conf -D root 65067 1 0 17:01 ? 00:00:00 nginx: tiến trình chính /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 65068 65067 0 17:01 ? 00:00:00 nginx: tiến trình làm việc root 65122 1514 0 17:01 pts/0 00:00:00 grep -E --color=auto nginx|keepalived [root@KeepBackup keepalived]# ip a 1: lo:  mtu 65536 qdisc trạng thái noqueue KHÔNG XÁC ĐỊNH nhóm mặc định qlen 1000 liên kết/vòng lặp 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 valid_lft mãi mãi preferred_lft mãi mãi inet6 ::1/128 phạm vi máy chủ valid_lft mãi mãi preferred_lft mãi mãi 2: ens33:  mtu 1500 qdisc pfifo_fast trạng thái UP nhóm mặc định qlen 1000 liên kết/ether 00:0c:29:c4:54:23 brd ff:ff:ff:ff:ff:ff inet 172.16.70.182/24 brd 172.16.70.255 phạm vi toàn cục noprefixroute ens33 valid_lft mãi mãi preferred_lft mãi mãi inet 172.16.70.183/32 phạm vi toàn cục ens33 valid_lft mãi mãi preferred_lft mãi mãi inet6 fe80::7726:d409:2cf4:babd/64 phạm vi liên kết tạm thời noprefixroute dadfailed valid_lft mãi mãi preferred_lft mãi mãi inet6 fe80::833:43b:7d2:6e4c/64 phạm vi liên kết tạm thời noprefixroute dadfailed valid_lft mãi mãi preferred_lft mãi mãi inet6 fe80::c2be:590b:1ae6:42e3/64 phạm vi liên kết tạm thời noprefixroute dadfailed valid_lft mãi mãi preferred_lft mãi mãi [root@KeepBackup keepalived]# tail /var/log/messages 07/03 17:01:28 Keepalived-02 Keepalived_vrrp[65037]: Đang gửi ARP miễn phí trên ens33 cho 172.16.70.183 07/03 17:01:28 Keepalived-02 Keepalived_vrrp[65037]: Đang gửi ARP miễn phí trên ens33 cho 172.16.70.183 07/03 17:01:28 Keepalived-02 Keepalived_vrrp[65037]: Đang gửi ARP miễn phí trên ens33 cho 172.16.70.183 7-3 17:01:28 Keepalived-02 NetworkManager[573]:  [1678179688.8137] policy: set-hostname: tên máy chủ hiện tại đã được thay đổi bên ngoài NetworkManager: 'KeepBackup' 7-3 17:01:33 Keepalived-02 Keepalived_vrrp[65037]: (VI_1) Gửi/xếp hàng ARP miễn phí trên ens33 cho 172.16.70.183 7-3 17:01:33 Keepalived-02 Keepalived_vrrp[65037]: Gửi ARP miễn phí trên ens33 cho 172.16.70.183 7-3 17:01:33 Keepalived-02 Keepalived_vrrp[65037]: Đang gửi ARP miễn phí trên ens33 cho 172.16.70.183 7 tháng 3 17:01:33 Keepalived-02 Keepalived_vrrp[65037]: Đang gửi ARP miễn phí trên ens33 cho 172.16.70.183 7 tháng 3 17:01:33 Keepalived-02 Keepalived_vrrp[65037]: Đang gửi ARP miễn phí trên ens33 cho 172.16.70.183 7 tháng 3 17:01:33 Keepalived-02 Keepalived_vrrp[65037]: Đang gửi ARP miễn phí trên ens33 cho 172.16.70.183

                        
 
 
 

Tính sẵn sàng cao của máy kép thường đạt được thông qua phương pháp IP ảo (drift IP). Công nghệ bí danh IP dựa trên Linux/Unix hiện được chia thành hai loại:

  • Chế độ chủ-nô lệ máy chủ kép: nghĩa là giao diện người dùng sử dụng hai máy chủ, một máy chủ chính và một máy chủ dự phòng nóng. Trong trường hợp bình thường, máy chủ chính được liên kết với IP ảo mạng công cộng để cung cấp dịch vụ cân bằng tải và. máy chủ dự phòng nóng không hoạt động; rơi vào tình trạng lãng phí Đối với những website có ít máy chủ, giải pháp này không kinh tế.
  • Chế độ master-master máy chủ kép: tức là front-end sử dụng hai máy chủ cân bằng tải, nhau là máy chủ chính và máy chủ dự phòng, cả hai đều hoạt động đồng thời, mỗi máy chủ được liên kết với một IP ảo mạng công cộng. cung cấp dịch vụ cân bằng tải; khi một máy bị lỗi thì máy còn lại sẽ tiếp quản IP ảo mạng công cộng của máy chủ bị lỗi (lúc này, một máy không bị lỗi sẽ đảm nhận mọi yêu cầu). Giải pháp này tiết kiệm và rất phù hợp với môi trường kiến ​​trúc hiện nay.

Sơ đồ kiến ​​trúc cụm chế độ chính

Sau khi hiểu được chế độ hoạt động và chế độ chờ, chế độ hoạt động kép sẽ dễ cấu hình hơn nhiều. Chỉ cần thêm vrrp_instance có tên vrrp_instance VI_2 vào mỗi tệp cấu hình được giữ nguyên, thay đổi một vài tham số và đặt một VIP khác: 172.16.70.184.

  • KeepMaster:trạng thái BACKUP,mức độ ưu tiên 100,virtual_router_id 52
  • KeepBackup:trạng thái MASTER,mức độ ưu tiên 110,virtual_router_id 52

keepaliving.conf trên KeepMaster

                          [root@KeepMaster keepalived]# cat etc/keepalived/keepalived.conf ! Tệp cấu hình cho 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_skip_check_adv_addr vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_script chk_nginx { script "/data/apps/keepalived/chk_nginx.sh" interval 2 weight -5 } vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 110 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.16.70.183 } track_script { chk_nginx } } vrrp_instance VI_2 { trạng thái SAO LƯU giao diện ens33 virtual_router_id 52 ưu tiên 100 advert_int 1 xác thực { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.16.70.184 } track_script { chk_nginx } } [root@KeepMaster keepalived]# systemctl restart keepalived

                        

 keepaliving.conf trên KeepBackup

                          [root@KeepBackup keepalived]# cat etc/keepalived/keepalived.conf ! Tệp cấu hình cho 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_skip_check_adv_addr vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_script chk_nginx { script "/data/apps/keepalived/chk_nginx.sh" interval 2 weight -5 } vrrp_instance VI_1 { state BAKCUP interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.16.70.183 } track_script { chk_nginx } } vrrp_instance VI_2 { trạng thái MASTER giao diện ens33 virtual_router_id 52 ưu tiên 110 advert_int 1 xác thực { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.16.70.184 } track_script { chk_nginx } } [root@KeepBackup keepalived]# systemctl restart keepalived

                        

  Máy kiểm tra Client-01 xác minh VIP2

  • VIP2 trên máy chủ Keep
                          # Nhận xét phân tích cú pháp VIP1, chỉ kiểm tra VIP2 tại thời điểm này; bỏ ghi chú VIP1 sau khi thử nghiệm thành công [root@Client-01 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost. tên miền địa phương localhost6 localhost6.localdomain6 #172.16.70.183 www.zhangwen Cheng.org 172.16.70.184 www.zhangwen Cheng.org [root@Client-01 ~]#curl www.zhangwen Cheng.org web-01 172.16.70.191 [root@Client-01 ~]#curl www.zhangwenchen.org web-02 172.16.70.192 [root@Client-01 ~]# cuộn tròn www.zhangwen Cheng.org web-02 172.16.70.192 [root@Client-01 ~]#curl www.zhangwen Cheng.org web-01 172.16.70.191

                        
  •  Kiểm tra trạng thái VIP
                          [root@KeepMaster ~]# ip a 1: lo:  mtu 65536 qdisc trạng thái noqueue KHÔNG XÁC ĐỊNH nhóm mặc định qlen 1000 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 valid_lft mãi mãi preferred_lft mãi mãi inet6 ::1/128 phạm vi máy chủ valid_lft mãi mãi preferred_lft mãi mãi 2: ens33:  mtu 1500 qdisc pfifo_fast trạng thái LÊN nhóm mặc định qlen 1000 liên kết/ether 00:0c:29:a1:82:4e brd ff:ff:ff:ff:ff:ff inet 172.16.70.181/24 brd 172.16.70.255 phạm vi toàn cục noprefixroute ens33 valid_lft mãi mãi preferred_lft mãi mãi inet 172.16.70.183/32 phạm vi toàn cục ens33 # VIP1 valid_lft mãi mãi preferred_lft mãi mãi inet6 fe80::7726:d409:2cf4:babd/64 phạm vi liên kết tạm thời noprefixroute dadfailed valid_lft mãi mãi preferred_lft mãi mãi inet6 fe80::833:43b:7d2:6e4c/64 phạm vi liên kết tạm thời noprefixroute dadfailed valid_lft mãi mãi preferred_lft mãi mãi inet6 fe80::c2be:590b:1ae6:42e3/64 phạm vi liên kết noprefixroute valid_lft mãi mãi preferred_lft mãi mãi

                        
                          [root@KeepBackup ~]# ip a 1: lo:  mtu 65536 qdisc trạng thái noqueue KHÔNG XÁC ĐỊNH nhóm mặc định qlen 1000 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 valid_lft mãi mãi preferred_lft mãi mãi inet6 ::1/128 phạm vi máy chủ valid_lft mãi mãi preferred_lft mãi mãi 2: ens33:  mtu 1500 qdisc pfifo_fast trạng thái LÊN nhóm mặc định qlen 1000 liên kết/ether 00:0c:29:c4:54:23 brd ff:ff:ff:ff:ff:ff inet 172.16.70.182/24 brd 172.16.70.255 phạm vi toàn cục noprefixroute ens33 valid_lft mãi mãi preferred_lft mãi mãi inet 172.16.70.184/32 phạm vi toàn cục ens33 # VIP2 valid_lft mãi mãi preferred_lft mãi mãi inet6 fe80::7726:d409:2cf4:babd/64 phạm vi liên kết tạm thời noprefixroute dadfailed valid_lft mãi mãi preferred_lft mãi mãi inet6 fe80::833:43b:7d2:6e4c/64 phạm vi liên kết tạm thời noprefixroute dadfailed valid_lft mãi mãi preferred_lft mãi mãi inet6 fe80::c2be:590b:1ae6:42e3/64 phạm vi liên kết tạm thời noprefixroute dadfailed valid_lft mãi mãi preferred_lft mãi mãi

                        
  •   Kiểm tra chuyển đổi dự phòng cũng tương tự và sẽ không được mô tả lại.

Cuối cùng, bài viết này về triển khai cụm khả dụng cao Nginx+Keepalive kết thúc tại đây. Nếu bạn muốn biết thêm về triển khai cụm khả dụng cao Nginx+Keepalive, vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. tương lai blog của tôi! .

30 4 0
tôi là một con chim nhỏ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress