Hướng dẫn setup HA NGINX bằng keepalived sử dụng VIP

Hướng dẫn setup HA nginx đơn giản bằng keepalived sử dụng VIP



VNG CLOUD đang cung cấpdịch vụ cho phép người dùng khởi tạo Virtual IP Address (VIP) phục vụ cho nhu cầu High Avaibility (HA) của hệ thốngHiện tại VIP  1 private IP, chưa  Public VIP.


1.Khởi tạo VIP trên Portal VNG Cloud



Sau khi khởi tạo VIP thì ta tiến hành Add Address Pair Interface cho các server trong cụm HA

Trong  dụ đã add 2 server 10.30.15.3  10.30.15.5, VIP  10.30.15.6


2.Cài đặt NGINX và keepalived trên 2 server trong cụm HA


Ta sẽ thao tác trên server Master(10.30.15.3) trướcsau đó làm tương tự trên server Slave(10.30.15.5)

Cài đặt nginx:

yum install epel-release -y
yum install -y nginx

Tạotrang web index đơn giản để phục vụ cho việc test keepalived

vi /usr/share/nginx/html/index.html


<h1>This is the Master server</h1>

<h1>IP: 10.30.15.3</h1>

[Còn đối với server SLVE thì tạo file với nội dung:

<h1>This is the Slave server</h1>

<h1>IP: 10.30.15.5</h1> ]

_ Start nginx:

systemctl start nginx
systemctl enable nginx


Test web: curl http://10.30.15.3


Cài đặt keepalived:

yum install -y keepalived

Copy file config để backup trước khi chỉnh sửa:

cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bk

Edit file config với nội dung như bên dưới:

vi /etc/keepalived/keepalived.conf

global_defs {

 # Keepalived process identifier

 router_id nginx

}

# Script to check whether Nginx is running or not

vrrp_script check_nginx {

 script "/bin/check_nginx.sh"

 interval 2

 weight 50

}

# Virtual interface - The priority specifies the order in which the assigned interface to take over in a failover

vrrp_instance VI_01 {

 state MASTER

 interface ens3

 virtual_router_id 151

 priority 110

 # The virtual ip address shared between the two NGINX Web Server which will float

 virtual_ipaddress {

   10.30.15.6/24

 }

 track_script {

   check_nginx

 }

 authentication {

   auth_type AH

   auth_pass secret

 }

}

Tạo them 1 shell script để check nginx  running không để keepalived  thể switch VIP

vi /bin/check_nginx.sh

    #!/bin/sh

if [ -z "`pidof nginx`" ]; then

      exit 1

fi

Cấp quyền thực thi cho script check_nginx.sh

chmod 755 /bin/check_nginx.sh

Đến đây  ta đã hoàn thành config cho server Master, làm tương tự cho server SLAVE còn lạituy nhiên đối với file /etc/keepalived/keepalived.conf trên server SLAVE thì ta điều chỉnhchút như hình:


Cuối cùng, ta tiến hành start keepalived trên cả 2 server MASTER  SLAVE
systemctl start keepalived
systemctl enable keepalived
systemctl status keepalived


3.Testing:

Trường hợp 1: NGINX đều đang running trên 2 server MASTER  SLAVE thì server MASTER sẽ giữ VIP.

Khi đó ta truy cập đến trang index bằng cách curl VIP thì kết quả sẽ được trang index của MASTER



Trường hợp 2: Stop NGINX trên server MASTER thì VIP sẽ được switch sang server SLAVE

Khi đó ta truy cập đến trang index bằng cách curl VIP thì kết quả sẽ được trang index của SLAVE

Trường hợp 3: khi start lại NGINX trên MASTER thì VIP sẽ được switch về MASTER



    • Related Articles

    • Hướng dẫn thay đổi IP private cho vServer

      Tùy thuộc vào yêu cầu và mục đích sử dụng, ta có thể thay đổi private IP đối với vServer theo hướng dẫn bên dưới Lưu ý: việc thay đổi này sẽ làm interface bị down và không thể kết nối server trong thời gian thực hiện, do đó ở bước 2 cần thực hiện ...
    • Hướng dẫn sử dụng NFS làm Persistent Storage cho cluster VKS

      Hướng dẫn sử dụng NFS làm Persistent Storage cho cluster VKS Do Persistent Volume hiện tại trên chỉ hỗ trợ mode ReadWriteOnce(RWO), không hỗ trợ ReadWriteMany(RWX) nên trong bài viết này VNG Cloud hướng dẫn Quý Khách sử dụng NFS Server hoặc vStorage ...
    • Get Access Token cho API vServer sử dụng tool Postman

      Giới thiệu tổng quan: Khi sử dụng API vServer (https://vserver-api-docs.vngcloud.vn/service-docs/vserver.html) , trong mọi request đều yêu cầu Access Token nên dưới đây sẽ là hướng dẫn cụ thể Bước 1: Đầu tiên để get được Access Token thì cần có ...
    • HƯỚNG DẪN THAY ĐỔI THÔNG TIN TÀI KHOẢN QUẢN TRỊ

      Sau khi tài khoản được xác thực, để thay đổi các thông tin tài khoản quản trị như email đăng nhập, thông tin công ty (nếu là Doanh nghiệp), thông tin cá nhân,… Vui lòng làm theo hướng dẫn sau: TRƯỜNG HỢP 1: NẾU BẠN LÀ KHÁCH HÀNG DOANH NGHIỆP. Bước 1: ...
    • HƯỚNG DẪN THAY ĐỔI SỐ ĐIỆN THOẠI ĐĂNG KÝ TÀI KHOẢN

      Để thay đổi số điện thoại đăng ký tài khoản, vui lòng làm theo hướng dẫn sau: Bước 1: Đăng nhập vào cổng thông tin của VNG Cloud dashboard.console.vngcloud.vn. Bước 2: Chọn tên tài khoản ở góc trên bên phải => Chọn “Thay đổi số điện thoại”. Bước 3: ...