Giới thiệu:

Nginx là:  “engine-ex,” là một phần mềm web server mã nguồn mở nỗi tiếng. Ban đầu nó dùng để phục vụ web HTTP. Tuy nhiên, ngày nay nó cũng được dùng làm reverse proxy, HTTP load balancer và email proxy như IMAP, POP3, và SMTP. Keepalived là một chương trình dịch vụ trên Linux cung cấp khả năng tạo độ sẵn sàng cao (High Availability) cho hệ thống dịch vụ và khả năng cân bằng tải (Load Balancing) đơn giản. Với sự gọn nhẹ, tối ưu trong dịch vụ HA của Keepalived mang đến cho quản trị viên một giải pháp Active-Backup dịch vụ rất tốt. Thế nhưng tính năng Load Balancing của Keepalived thì khá là chán, không mạnh mẽ, tuỳ biến linh hoạt như các giải pháp khác là Nginx hay HAProxy được. Keepalived là một daemon hệ thống giám sát các dịch vụ hoặc hệ thống liên tục và đạt được tính khả dụng cao trong trường hợp bị lỗi. Nếu một nút không hoạt động thì nút thứ hai phục vụ tài nguyên.

Cài đặt:

Yêu cầu hệ thống:

  • 2 server chạy centos 7
  • Cài đặt Nginx trên 2 server

Tiến hành cài đặt và cấu hình:

Cài đặt Nginx và KeepAlived:

Cài đặt Nginx: B1: Cài đặt các gói bằng lệch sau:
yum install yum-utils -y
B2: Thêm yum repository : Bạn cần thiết lập nginx repository để có thể cài đặt được Nginx thông qua yum: Dán đoạn lệch sau vào:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
B3: Cài đặt Nginx bằng lệch:
yum install nginx -y
Cài đặt và cấu hình KeepAlived trên 2 server: Dùng các lệch sau để cài đặt:
yum install gcc kernel-headers kernel-devel
Tiếp theo ta dùng lệnh sau
yum install keepalived
Dùng lệch sau cho phép  gắn IP ảo lên card mạng:
echo "net.ipv4.ip_nonlocal_bind = 1" >> /etc/sysctl.conf
sysctl -p
Cấu hình KeepAlived trên 2 server: Chỉnh sửa 1 số thông tin như hình: Dùng lệch này để chỉnh sửa:
nano /etc/keepalived/keepalived.conf
Đoạn code node trên Node Master
! 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 172.16.1.111
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface ens192
    virtual_router_id 51
    priority 110
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.1.23
    }
}

 track_script {
    check_nginx
  }
  authentication {
    auth_type AH
    auth_pass secret
  }
Đoạn code trên Node BackUp:
! 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 172.16.1.111
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens192
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.1.23
    }
}

 track_script {
    check_nginx
  }
  authentication {
    auth_type AH
    auth_pass secret
  }
Sau khi chỉnh sửa xong 2 Node ta tiến hành Khỏi động lại KeepAlived:
systemctl start keepalived 
systemctl enable keepalived
Kiểm tra trạng thái của dịch vụ keepalived bằng lệnh sau:
systemctl status keepalived
Kiểm tra IP ảo trên 2 Node bằng lệch:
ip add show
Tạo file index.html trên 2 node: Node Master:
echo "<h1>WebServer_MASTER</h1>" | tee /usr/share/nginx/html/index.html
Node BackUp:
echo "<h1>WebServer_BACKUP</h1>" | tee /usr/share/nginx/html/index.html

Kiểm tra KeepAlived có hoạt động không:

Dùng IP ảo để mở web của bạn: http://172.16.1.23 Dừng dịch vụ NGinx ở bên node Master:
systemctl stop nginx
Bạn mở lại web bằng IP ảo: http://172.16.1.23 Như vậy KeepAlived đã hoạt động

Write a Reply or Comment

Your email address will not be published. Required fields are marked *