Cài đặt và triển khai Nginx load balancing server – Kiến Thức System

Mời các bạn xem danh sách tổng hợp Cài đặt và triển khai nginx load balancing server hot nhất hiện nay được bình chọn bởi người dùng

Trong bài này mình sẽ làm demo cài đặt và triển khai NGINX như một load balancing server (cân bằng tải). NGINX sẽ đứng ra thực hiện phân tải. Tránh tình trạng 1 server phải xử lý tất cả request hoặc nếu có 1 server trong cụm server chết thì cũng không sao.

1. Mô hình triển khai

– Nginx server: 10.10.10.100

– Server01: 10.10.10.10

– Server02: 10.10.10.15

– Server03: 10.10.10.20

2. Tiến hành cài đặt và triển khai load balancing server

2.1 Cài đặt nginx

+ Đối với CentOs7/ Redhat7/ Oracle Linux7: # yum -y install nginx + Đối với CentOs8/ Redhat8/ Oracle Linux8: # yum -y install epel-release # dnf -y install nginx + Đối với Debian: # apt -y install nginx + Đối với Ubuntu: # apt-get install nginx

– Cho phép nginx tạo kết nối mạng

# setsebool httpd_can_network_connect on -P

– Khởi động nginx

# service nginx start

– Cấu hình firewall và reload lại dịch vụ:

# firewall-cmd -zone=public -add-port=80/tcp -permanent # firewall-cmd -zone=public -add-port=443/tcp -permanent # firewall-cmd -reload

2.2 Quy ước cấu hình

– Mở file /etc/nginx/nginx.conf thêm dòng sau

include /etc/nginx/conf.d/upstream;

Xem thêm: Top 7 xu hướng thiết kế logo năm 2022 – Logo Design Trends

– Nôi dung tóm tắc file sẽ như sau:

user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; … … include /etc/nginx/conf.d/*.conf; include /etc/nginx/conf.d/upstream; }

– Tạo file tương ứng /etc/nginx/conf.d/upstream File này sẽ khai báo thông tin các cụm load balancer và thuật toán load balancer.

+ Ở đây mình khai báo 2 cụm server cần được load balancer là backends_01backends_02.

+ Ở 2 cụm này được khai báo với thuật toán mặc đinh là Round Robin.

upstream backends_01 { server 10.10.10.10:7001; server 10.10.10.15:7001; server 10.10.10.20:7001; } upstream backends_02 { server 10.10.10.25:80; server 10.10.10.30:80; }

2.2.1 Thuật toán Round Robin

– Round Robin là thuật toán mặc định của nginx khi chúng ta không có cấu hình gì thêm trong block HTTP.

– Đặc điểm của thuật toán này là các request sẽ được luân phiên liên tục giữa các server 1:1:1 , điều này sẽ làm giải tải cho các hệ thống có lượng request lớn.

+ Tại file /etc/nginx/conf.d/upstream ta sẽ khai báo cấu hình như sau:

upstream backends_01 { server 10.10.10.10:7001; server 10.10.10.15:7001; server 10.10.10.20:7001; }

2.2.2 Thuật toán Weighted load balancing

– Đây là một thuật toán quan trọng trong loadbalancing, khi sử dụng thuật toán này sẽ giúp chúng ta giải quyết đươc bài toán phân chia các server xử lý.

– Với mặc định của nginx sử dụng thuật toán round-robin thì các request sẽ được chuyển luân phiên đến các server để xử lý, tuy nhiên đối với Weighted load balancing thì chúng ta sẽ phân ra được khối lượng xử lý giữa các server.

– Ví dụ chúng ta có 3 server dùng để load balancing muốn cứ 5 request đến thì:

+ 3 request sẽ dành cho server01 xử lý.

Xem thêm: Đánh giá Tinohost chi tiết: Xứng đáng dịch vụ Hosting hàng đầu Việt

+ 1 request dành cho server02.

+ 1 request dành cho server03.

Các trường hợp tương tự thì weighted load balancing là sự lựa chọn hợp lý.

+ Tại file /etc/nginx/conf.d/upstream ta sẽ khai báo cấu hình như sau:

upstream backends_01 { server 10.10.10.10:7001 weight=3; server 10.10.10.15:7001 weight=1; server 10.10.10.20:7001 weight=1; }

2.2.3 Thuật toán Least connection

– Đây là thuật toán nâng cấp của round robin và weighted load balancing, thuật toán này sẽ giúp tối ưu hóa cân bằng tải cho hệ thống.

– Đặc điểm của thuật toán này là sẽ chuyển request đến cho server đang xử lý ít hơn làm việc, thích hợp đối với các hệ thống mà có các session duy trì trong thời gian dài, tránh được trường hợp các session duy trì quá lâu mà các request được chuyển luân phiên theo quy tắc định sẵn , dễ bị down 1 server nào đó do xử lý quá khả năng của nó.

+ Tại file /etc/nginx/conf.d/upstream ta sẽ khai báo cấu hình như sau:

upstream backends_01 { least_conn; server 10.10.10.10:7001; server 10.10.10.15:7001; server 10.10.10.20:7001; }

2.3.4 Thuật toán Health check

– Thuật toán này xác định máy chủ sẵn sàng xử lý request để gửi request đến server , điều này tránh được việc phải loại bỏ thủ công một máy chủ không sẵn sàng xử lý.

– Các hoạt động của thuật toán này là nó sẽ gửi một kết nối TCP đến máy chủ , nếu như máy chủ đó lắng nghe trên địa chỉ và port đã cấu hình thì nó mới gửi request đến cho server xử lý.

– Đối với các máy chủ cơ sở dữ liệu thì health check không thể làm điều này.

+ Tại file /etc/nginx/conf.d/upstream ta sẽ khai báo cấu hình như sau:

upstream backends_01 { server 10.10.10.10:7001 max_fails=3 fail_timeout=5s; server 10.10.10.15:7001; server 10.10.10.20:7001; }

2.3 Cấu hình vhost

Xem thêm: 99+ Ảnh Typo Chữ Đẹp, Nghệ Thuật, Ấn Tượng Nhất Cho Giới Trẻ

– Để sử dụng được file cấu hình dưới dây bạn cần tiến hành cấu hình và cài đặt thêm các yêu cầu sau đây

+ Để client truy cập sử dụng SSL bạn có thể sử dụng SSL bạn mua từ các nhà cung cấp khác hoặc sử dụng SSL miễn phi bằng cách cài đặt thêm SSL Let’s Encrypt.

+ Tạo thư mục và các file log.

2.3.1 Cài đặt và cấu hình

– Mục dích dùng để mã hóa các yêu cầu từ phía client đến server.

# sudo yum install certbot -y

– Để phát hành chứng chỉ SSL Let’s Encrypt cho domain có rất nhiều cách:

# service nginx stop # certbot certonly -standalone -d weblogic.system.info.vn -staple-ocsp -m admin@weblogic.system.info.vn -agree-tos

+ File SSL được lưu trữ tại đường dẫn: /etc/letsencrypt/live/weblogic.system.info.vn/

[root@weblogic ~]# ls /etc/letsencrypt/live/weblogic.system.info.vn/ fullchain.pem privkey.pem

2.3.2 Tạo thư mục và các file log

# mkdir -p /var/log/nginx/weblogic.system.info.vn # cd /var/log/nginx/weblogic.system.info.vn # touch error.log access.log

2.3.3 File cấu hình Vhost cơ bản

+ Tạo file tương ứng /etc/nginx/conf.d/<ten file>.conf File này sẽ khai báo các cấu hình vhost của backends như IP, server name và Port client truy cập, access_log, access_log, SSL,…

+ Bạn có thể tạo nhiều file cấu hình khác nhau cho cụm server cần load balancing ở đây mình sử dụng cụm upstream backends_01 được khai báo ở trên:

# vi /etc/nginx/conf.d/weblogic.system.info.vn.confserver { # Listen on port 80 and 443 on both IPv4 and IPv6 listen 80; listen 443 ssl; #listen [::]:80 ipv6only=on; #listen [::]:443 ipv6only=on ssl; # Server name server_name weblogic.system.info.vn; #Log access_log /var/log/nginx/weblogic.system.info.vn/access.log; error_log /var/log/nginx/weblogic.system.info.vn/error.log; # Enable SSL ssl_certificate /etc/letsencrypt/live/weblogic.system.info.vn/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/weblogic.system.info.vn/privkey.pem; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP; ssl_prefer_server_ciphers on; # Proxy proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; location / { proxy_pass http://backends_01; } }

– Kiểm tra file cấu hình

# nginx -t[root@weblogic ~]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

– Restart nginx để áp dụng cấu hình Vhost

# service nginx restart

  • Ngoài ra bạn có thể tham khảo qua bài viết cài đặt và triển khai HAProxy load balancing server.

Kiến Thức System chúc các bạn thành công!

Bản quyền nội dung thuộc Nhất Việt Edu

Bài viết liên quan

Cách tìm kiếm sản phẩm trên TikTok Shop Hot Trend
5 Cách tìm kiếm sản phẩm trên TikTok Shop Hot Trend 2023
Trí tuệ nhân tạo AI là gì? Ứng dụng như thế nào trong cuộc sống?
Trí tuệ nhân tạo AI là gì? Ứng dụng như thế nào trong cuộc sống?
So Sánh Các Loại Hình Công Ty Theo Luật Doanh Nghiệp 2020
So Sánh Các Loại Hình Công Ty Theo Luật Doanh Nghiệp 2020
Đại sứ truyền thông là gì và có ảnh hưởng như thế nào với doanh
Đại sứ truyền thông là gì và có ảnh hưởng như thế nào với doanh
Cloud Storage – Lưu trữ đám mây là gì? Tính năng và lợi ích khi sử
Cloud Storage – Lưu trữ đám mây là gì? Tính năng và lợi ích khi sử
Cấu Trúc và Cách Dùng từ Respond trong câu Tiếng Anh
Cấu Trúc và Cách Dùng từ Respond trong câu Tiếng Anh
App Momo Bảo Trì Đến Khi Nào, Thông Báo Bảo Trì Tính Năng
App Momo Bảo Trì Đến Khi Nào, Thông Báo Bảo Trì Tính Năng
Branding là gì? Tìm hiểu đầy đủ và chi tiết về Branding – Mona Media
Branding là gì? Tìm hiểu đầy đủ và chi tiết về Branding – Mona Media