Thiết lập Nginx Với KeepAlived trên CentOS 7

Tóm tắt nội dung

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

Logo Cloud Việt

Thông Tin Và Hoạt Động Của Chúng Tôi

Cloud Việt là đơn vị cung cấp dịch vụ TTDL uy tín tại Việt Nam. Với tiêu chí là đặt quyền lợi và trải nghiệm của khách hàng lên hàng đầu để  đem đến dịch vụ tốt nhất.

Trụ sở chính

110/20/41 đường số 30, phường 6, quận Gò Vấp, TPHCM

Ngày làm việc

Thứ 2 - Thứ 6, Hàng tuần

Giờ làm việc

08 : 00 AM - 18 : 00 PM

Email

Support@cloudviet.com.vn

Hotline

0972 710 812