Header Ads

Hướng dẫn cấu hình load balancer trên varnish cache

Hướng dẫn cấu hình load balancer trên varnish cache


Hướng dẫn cấu hình load balancer trên varnish cache


Load Balancing hay còn gọi là Cân bằng tải ?? một kỹ thuật thường được sử dụng để tối ưu hóa việc sử dụng tài nguyên, băng thông, giảm độ trễ, và tăng cường khả năng chịu lỗi.


Khi chúng ta có nhiều hơn một web server, cùng với đó là sự gia tăng lưu lượng truy cập thì việc bổ sung thêm một máy chủ để phân phối lưu lượng này một cách hợp lý là cần thiết. Máy chủ được bổ sung này được gọi là Load balancer



Hôm nay chúng sẽ sử dụng varnish làm load balancer, dưới đây là mô hình mà mình hướng đến.

Hướng dẫn cấu hình load balancer trên varnish cache



Ban đầu chúng ta giả lập 2 server hoạt động với port 81, 82 trên nginx

server {
        listen 81;
        server_name server1.local;
        root /var/www/server1;
        index index.html;
}

server {
        listen 82;
        server_name server2.local;
        root /var/www/server2;
        index index.html;
}

Tiếp theo chúng ta sẽ sửa lại file default.vcl để load dynamic backend trên varnish.

vcl 4.0;

import directors;

backend server1 {
        .host = "127.0.0.1";
        .port = "81";
        .probe = {
                .url = "/";
                .timeout = 1s;
                .interval = 5s;
                .window = 5;
                .threshold = 3;
        }
}

backend server2 {
        .host = "127.0.0.1";
        .port = "82";
        .probe = {
                .url = "/";
                .timeout = 1s;
                .interval = 5s;
                .window = 5;
                .threshold = 3;
        }
}

sub vcl_init {
        new bar = directors.round_robin();
        bar.add_backend(server1);
        bar.add_backend(server2);
}

Hiện tại mình đang sử dụng thuật toán round robin cho việc load balancing cho Server1 và Server2. 

Các bạn lưu ý phần .probe là đoạn health checks, đoạn này có ý nghĩa cứ 5s varnish sẽ request lên Server với url = / một lần với thời gian timeout = 1s, Nếu 3 lần cuối cùng checks thành công thì kết luận server vẫn sống, ngược lại server sẽ được coi là đã chết và varnish tự động sử dụng tài nguyên của server còn sống.

Hướng dẫn cấu hình load balancer trên varnish cache


No comments