Cân bằng tải giúp cho server xử lý được số lượng request lớn.
Theo như các đi thông thường thì request từ client đi trực tiếp tới một web server duy nhất, điều này có thể gây nghẽn server, tốc độ xử lý chậm.
Cân bằng tải sẽ dựa vào thuật toán tuỳ theo nhu cầu để điều khiển vô các web server khác.
Có 3 loại thuật toán cân bằng tải:
- Round robin : phương thức này lựa chọn server theo tuần tự. Bộ cân bằng tải sẽ chọn server đầu tiên trong danh sách của mình cho yêu cầu đầu tiên, sau đó di chuyển xuống server tiếp theo trong danh sách theo thứ tự và bắt đầu lại từ đầu khi hết danh sách.
- Least connection : hệ thống cân bằng tải sẽ chọn server có ít kết nối nhất và cách này được khuyên dùng khi tốc độ truy cập bị chậm.
- Source : với thuật toán Source, bộ cân bằng tải sẽ chọn server dựa trên một chuỗi các IP gốc của yêu cầu, chẳng hạn như IP của người truy cập. Phương thức này đảm bảo một người dùng cụ thể sẽ luôn kết nối với cùng một server.
Cân bằng tải gồm 2 loại:
- Cứng :Sử dụng phần cứng để điều khiển request. Các thiết bị như: Foundry, Nortel (Alteon) hay Cisco CSS (Arrowpoint), Cisco Local Director…
- Mềm : Sử dụng phần mêm để điều khiên request. Các phần mềm như: Nginx, Haproxy, Apache ….
Cân bằng tải gồm 2 mô hình 4 layer và 7 layer.
Sau đây là cách cài đăt Cân bằng tải mềm 4 layer và dùng Haproxy:
- Load Balancer
OS: CentOS 7 + haproxy
Private IP: 192.168.1.129:80 - Web Server 1
OS: CentOS 7 + Nginx
Private IP: 192.168.129:8080 - Web Server 2
OS: CentOS 6+ Nginx
Private IP: 192.168.128:80
Ở Load balancer và Web Server 1 hãy mở port 80,8080. Ở Web Server 2 hãy mở port 80. Web Server 1 sẽ có nội dung là “a”. Web Server 2 sẽ có nội dung là “b”.
Cài đặt Haproxy trên Load Balancer
sudo yum install haproxy
Sau đó sửa file /etc/haproxy/haproxy.cfg. Nên tạo backup file này.
global
daemon
maxconn 256
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
stats enable
stats hide-version
stats refresh 30s
stats show-node
stats auth admin:123456
stats uri /haproxy?stats
frontend http-in
bind *:80
default_backend servers
backend servers
balance roundrobin
server webserver1 192.168.1.128:80 check
server webserver2 192.168.1.129:8080 check
Chạy lệnh sudo service haproxy start
Gõ vào url 192.168.1.129 ta sẽ thấy nội dung luân phiên thay đổi là “a” và “b”.
Để xem thông tin về các web server ta truy cập 192.168.1.129/haproxy?stats với tài khoản là admin/123456