Hướng dẫn cài đặt load balancing bằng POUND trên centos 6 (cân bằng tải)

POUND là một chương trình cân bằng tải phát triển bởi Công ty ITSECURITY

Nó là một mã nguồn mở , được sử dụng như 1 công cụ proxy hay getaway, cân bằng tải cho máy chủ web để phân phối tải giữa một số máy chủ

POUND có một số lợi ích như sau

  • Hỗ trợ máy ảo.
  • Cấu hình dễ dàng
  • Khi một máy phụ trợ không truy cập đc ,nó tự động phát hiện và chia lại tải 
  • Nó bác bỏ yêu cầu không chính xác.
  • Không có quy định trình duyệt hoặc máy chủ web.

I.Chuẩn bị 

3 vps

Pound Server :107.189.160.9

web server 1 : 107.178.97.13

web server 2 : 107.178.97.14 

Pound Server cài kho epel click here

2 web server cài đặt LAMP click here

Cấu hình firewall

# nano /etc/sysconfig/iptables

Trên Pound Server thêm các dòng sau :

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8001 -j ACCEPT

Trên web server 01 

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT

Trên web server 02 

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8001 -j ACCEPT

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

# service iptables restart 

II.Tiến hành 

1.Cài đặt pound

Pound có nhiều cách cài đặt có thế cài từ yum hoặc tại file đuôi .rpm từ trang web sau 

http://www.invoca.ch/pub/packages/pound/

Trên Pound server ta gõ lệnh sau

# yum install Pound -y 

2.Cấu hình pound để làm việc 

Trên Pound server

# nano /etc/pound.cfg

ListenHTTP
    Address 107.189.160.9  (ip Pound Server) 

    Port 80
End

ListenHTTPS
    Address 107.189.160.9  (ip Pound Server) 

    Port    443
    Cert    "/etc/pki/tls/certs/pound.pem"
End

Service
    BackEnd
        Address 107.178.97.13  (ip web server 01) 

        Port    8000           (port của web server 01)
    End

    BackEnd
        Address 107.178.97.14  (ip web server 02) 

        Port    8001          (port của web server 02)
    End
End

khởi động dịch vụ Pound

# service pound start

Cho khởi động cùng hệ thống

# chkconfig pound on

Trên 2 web server  lần lượt chính sửa như sau

# nano /etc/httpd/conf/httpd.conf

Tìm dòng Listen 80

Web server 01 sửa port thành

#Listen 12.34.56.78:80
Listen 8000 

Web server 02 sửa port thành

#Listen 12.34.56.78:80
Listen 8001

Lưu ý :port trên Web server phải giống với port đã khai báo trên Pound server

khởi động lại http

# service httpd restart

Trên 2 web server lần lượt tạo file index.html với nội dung lần lượt là web server 01 và 02

# nano /var/www/html/index.html

<html>
  <head>
    <title>maxserver</title>
  </head>
  <body>
    <h1>web server 01 </h1>
  </body>
</html>

Để kiểm tra pound bạn cái bạn truy cập vào trinh duyệt như sau http://ip-Pound server/ 

 

3.Cấu hình ưu tiên 

Giả sử 1 trong 2 web server làm việc hiệu quả hơn web server còn lại . Ta sẽ phải xem xét việc đặt cho web server làm việc tốt hơn số lượt tải nhiều hơn.

Để cân bằng tải như thế, bạn chỉ cần thêm một tham số duy nhất bên trong các tập tin pound.cfg

Vd; web server 02 làm việc tốt hơn ta sẽ đặt cho nó Priority bằng 5 

# nano /etc/pound.cfg

ListenHTTP
    Address 107.189.160.9  
    Port 80
End

ListenHTTPS
    Address 107.189.160.9 
    Port    443
    Cert    "/etc/pki/tls/certs/pound.pem"
End

Service
    BackEnd
        Address 107.178.97.13
        Port    8000 
    End

    BackEnd
        Address 107.178.97.14 
        Port    8001  

        Priority 5
    End
End

# service pound restart

4.Cấu hình khi sự cố khẩn cấp

Emergency : Thẻ này được sử dụng để tải một máy chủ trong trường hợp của tất cả các máy chủ kết thúc trở lại là chết. Bạn có thể thêm nó vào trước thẻ End cuối cùng của pound.cfg như sau.

POUND luôn theo dõi trong đó máy chủ phụ trợ còn sống hay không 

Chúng ta có thể xác định sau bao nhiêu giây POUND nên kiểm tra các máy chủ phụ trợ bằng cách thêm tham số "Alive" trong pound.cfg.

Bạn có thể sử dụng các tham số như "Alive 30" cho thiết lập nó để 30 giây. 

Vd:

Alive 30

ListenHTTP
    Address 107.189.160.9  
    Port 80
End

ListenHTTPS
    Address 107.189.160.9 
    Port    443
    Cert    "/etc/pki/tls/certs/pound.pem"
End

Service
    BackEnd
        Address 107.178.97.13
        Port    8000 
    End

    BackEnd
        Address 107.178.97.14 
        Port    8001  
        Priority 5
     End

   Emergency
           Address  107.178.97.15
           Port    8003  
    End

End