Nếu như các bạn đã từng nghe đến từ LoadBalancing thì chắc đã không còn xa lạ gì với việc xây dựng hệ thống cân bằng tải của Windows rồi đúng không, vâng nhưng hiện tại thì không thế bởi lẻ mình sẻ hướng dẫn các bạn xây dựng hệ thống LoadBalancing trên hệ thống Linux, thì sẵn đây mình cũng xin giới thiệu thêm một chút có lẽ nhiều bạn sẻ nghe từ Nginx nhiều hơn là Haproxy, cả 2 đều là hệ thống LoadBalancing mã nguồn mở của Linux khá phổ biến và mạnh mẽ
Nhưng tại sao người ta không sử dụng Nginx mà lại chọn nhiều về Haproxy với các công ty vừa và nhỏ, đó chính là nằm ở chi phí và sự hỗ trợ Free của nó, với Free của Haproxy bạn sẻ có được các chức năng khá tốt và gần như tiện lợi gần bằng các Soft trả phí đắt tiền ngoài kia, còn nginx thì lại bị hạn hẹp một vài thứ và muốn có thể xài đầy đủ tốt hơn thì phải mua bản Nginx Plus, chính đều này nhiều công ty lớn nhưng muốn tiết kiệm cũng sử dụng Haproxy như VNG chẳng hạn, nếu bạn muốn biết rõ hơn về 2 Services này thì có thể đọc bài so sánh trên google nhé, bây giờ chúng ta sẻ bắt đầu chuẩn bị một vài thứ như hình trên:
- 2 máy web server ở đây mình dùng Ubuntu Server cho 2 máy này cả
- 1 máy Haproxy cũng là Ubuntu Server
- Đám mây nghĩa là người dùng truy cập vào địa chỉ IP của máy Haproxy
sudo apt-get update -y && apt-get upgrade -y (cập nhật hệ thống) sudo apt-get install apache2 (tiến hành cài đặt Apache Web Server) cd /var/www/html/ sudo cp index.html index.html.bak (Backup lại trang index mặt định và tiến hành chỉnh sửa lại trang index) sudo vi index.htmlBước 2: Web Server 2 nghĩa là (pubuntuserver2) của mình cũng làm tương tự
sudo apt-get update -y && apt-get upgrade -y (cập nhật hệ thống) sudo apt-get install apache2 (tiến hành cài đặt Apache Web Server) cd /var/www/html/ sudo cp index.html index.html.bak (Backup lại trang index mặt định và tiến hành chỉnh sửa lại trang index) sudo vi index.htmlBước 3: Bắt đầu cấu hình Haproxy thôi nào
sudo apt-get update -y && apt-get upgrade -y (cập nhật hệ thống) sudo apt-get install haproxyTa thực hiện check bằng lệnh haproxy -v để xem haproxy đã cài đặt thành công hay chưa nhé
Bước 4: Sau khi đã hiển thị như trên nghĩa là Haproxy đã cài đặt thành công rồi đó giờ thì đến lượt cấu hình file haproxy.cfg thôi nào chúng ta thực hiện truy cập chỉnh sửa file trong đường dẫn /etc/haproxy/haproxy.cfg nhưng làm gì làm thì chúng ta cũng nên backup file cấu hình lại trước nhé !
cd /etc/haproxy (truy cập vào thư mục haproxy) sudo cp haproxy.cfg haproxy.cfg.bak (thực hiện backup file config) sudo vi haproxy.cfgTruy cập vào cấu hình file haproxy.cfg thêm các cấu hình sao vào trong file config như hình nhé
frontend haproxynode bind *:80 mode http default_backend backendnodes backend backendnodes balance roundrobin (Lệnh để thực hiện loadbalancing cho Web) option forwardfor http-request set-header X-Forwarded-Port %[dst_port] http-request add-header X-Forwarded-Proto https if { ssl_fc } option httpchk HEAD / HTTP/1.1\r\nHost:localhost server web1 10.0.1.174:80 check (Web Server 1 của mình) server web2 10.0.1.179:80 check (Web Server 2 của mình listen stats bind :32700 stats enable stats uri / stats hide-version
Sau khi save lại chúng ta thực hiện chạy lệnh sau để kiểm tra cấu hình xem đúng không nha
haproxy -c -f /etc/haproxy/haproxy.cfgnếu nó thông báo như thế này nghĩa là bạn đã cấu hình thành công không bị lỗi gì rồi ak
Sau đó restart lại service và tận hưởng thôi nào
sudo service haproxy restartCác bạn nên chú ý nếu nó hiện ra bảng thông báo lỗi như sau
Job for haproxy.service failed because the control process exited with error code. See "systemctl status haproxy.service" and "journalctl -xe" for details.
nhưng rõ ràng mình check config thì lại báo ổn và không bị lỗi thì chứng tỏ bạn đang kẹt port trong file config hoặc vướng port mặc định 80 ở đây mình bị lỗi này là do bản thân máy Haproxy của mình trước đây có cài Apache nên vì thế mình cẩn phải gỡ Apache ra để không bị vướng Port và thực hiện Restart lại service, sau khi hoàn thành mình truy cập thử địa chỉ IP của máy Haproxy và sẻ thấy Web của mình đã Load lên
Thực hiện bấm "F5" một lần nữa thì sẻ thấy kết quả khác
Tuyệt vời ông mặt trời rồi đấy, chúc các bạn thành công, các bạn có thể ngâm cứu file config để thêm vào các chức năng khác nữa cho nó nhé !
Nguồn: itblognote.com
0 Comments
Vài lời muốn nói:
* Không được nhận xét thô tục bởi mình biết các bạn là những người văn minh.
* Pass giải nén mặt định là itblognote hoặc itblognote.com nếu có Pass khác thì mình sẽ ghim trong bài viết.
* Click vào quảng cáo và chia sẻ bài viết để mình có thêm động lực viết bài nhé.