Thứ Hai, 7 tháng 11, 2022

HƯỚNG DẪN CẤU HÌNH “REVERSE PROXY” CHO NGINX

Chúng ta đều biết NGINX là một công cụ Web Server được sử dụng phổ biến để làm Reverse Proxy, cân bằng tải hay HTTP cache. Hôm nay, mình sẽ hướng dẫn bạn cách triển khai Highly Available (HA) cho NGINX Web Server sử dụng công cụ keepalived.

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

  • Node 1 – 192.168.1.130 – nginx1.tel4vn.edu.vn – Centos 8.
  • Node 2 – 192.168.1.140 – nginx2.tel4vn.edu.vn – Centos 8.
  • Virtual IP: 192.168.1.150.
  • User có quyền sudo.

nginx-ha

Cài đặt NGINX Web Server

Trước hết, bạn cần cài đặt NGINX để làm Web Server:

$ sudo dnf install -y nginx

Tiếp theo, bạn cần tạo file index.html trên cả 2 node:

  • Trên node 1:
[tel4vn@nginx1 ~]$ echo "<h1>This is NGINX Web Server from Node 1</h1>" | sudo tee /usr/share/nginx/html/index.html
  • Trên node 2:
[tel4vn@nginx2 ~]$ echo "<h1>This is NGINX Web Server from Node 2</h1>" | sudo tee /usr/share/nginx/html/index.html

Tiếp tục mở port cho NGINX trên firewall:

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd -reload

Khởi động lại dịch vụ NGINX:

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

Lúc này, bạn có thể kiểm tra lại để xác nhận NGINX trên cả 2 node đều chạy đúng:

$ curl http://192.168.1.130
<h1>This is NGINX Web Server from Node 1</h1>
$ curl http://192.168.1.140
<h1>This is NGINX Web Server from Node 2</h1>

Cài đặt và cấu hình keepalived cho NGINX

Trước hết, bạn hãy cài đặt keepalived trước khi có thể cấu hình nó:

$ sudo dnf install -y keepalived

Sau đó, bạn hãy cấu hình để node 1 là master node, node 2 là backup node như sau:

  • Trên node 1, thực hiện tạo thay đổi cấu hình như bên dưới:
[tel4vn@nginx1 ~]$ echo -n | sudo tee /etc/keepalived/keepalived.conf
[tel4vn@nginx1 ~]$ sudo vi /etc/keepalived/keepalived.conf

Thêm đoạn cấu hình sau vào file:

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 enp0s3
  virtual_router_id 151
  priority 110

  # The virtual ip address shared between the two NGINX Web Server which will float
  virtual_ipaddress {
        192.168.1.150/24
  }
  track_script {
        check_nginx
  }
  authentication {
        auth_type AH
        auth_pass secret
  }
}

Tiếp theo, bạn hãy tạo một shell script để thực hiện kiểm tra xem NGINX có chạy hay không. Nếu kết quả trả về trừ script là không chạy thì keepalived sẽ chuyển sang địa chỉ IP trên backup node:

[tel4vn@nginx1 ~]$ sudo vi /bin/check_nginx.sh
#!/bin/sh
if [ -z "`pidof nginx`" ]; then
  exit 1
fi

Lưu lại file script và gán quyền thực thi:

[tel4vn@nginx1 ~]$ sudo chmod 755 /bin/check_nginx.sh
  • Trên node 2, thực hiện sao chép file cài đặt từ node 1 và thay đổi như bên dưới:
[tel4vn@nginx1 ~]$ scp /etc/keepalived/keepalived.conf root@192.168.1.140:/etc/keepalived/
[tel4vn@nginx1 ~]$ scp /bin/check_nginx.sh root@192.168.1.140:/bin/

Trong đó, file /etc/keepalived/keepalived.conf  trên node 2 cần phải chỉnh sửa state từ MASTER thành BACKUP và priority chỉnh thành 100 như bên dưới:

node-2-config-edit

Tiếp tục, bạn cần thực thi các câu lệnh mở port cho địa chỉ IP ảo trên firewall ở cả 2 node:

$ sudo firewall-cmd --add-rich-rule='rule protocol value="vrrp" accept' --permanent
$ sudo firewall-cmd --reload

Cuối cùng là khởi động lại dịch vụ keepalived để cập nhật cấu hình mới:

$ sudo systemctl start keepalived
$ sudo systemctl enable keepalived

Bạn có thể kiểm tra trạng thái của keepalived theo câu lệnh bên dưới:

$ sudo systemctl status keepalived

status-systemd

Khi kiểm tra địa chỉ IP trên master node, bạn có thể thấy một địa chỉ IP ảo được tạo ra:

virtual-ip-master

Bây giờ, bạn hãy thử truy cập website theo địa chỉ IP ảo 192.168.1.150. Mặc định sẽ master node sẽ phản hồi các truy cập:

master-respond

Tiếp tục tắt NGINX trên master node, khi truy cập lại website theo địa chỉ IP ảo, bạn sẽ thấy keepalived đã chuyển lưu lượng sang cho backup node:

node2-respond

Kết luận

Như vậy, mình đã hướng dẫn bạn cài đặt và cấu hình HA trên NGINX sử dụng keepalived. Cuối cùng, với bất kì thắc mắc nào, bạn hãy bình luận ở bên dưới để mình hỗ trợ nhé.

Nguồn bài viết: https://www.linuxtechi.com/

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master