Giới Thiệu

Varnish là một công cụ tuyệt vời giúp chúng ta tăng tốc trên máy chủ đặc biệt là vào thời điểm website có lượng truy cập cao, Varnish đóng vai trò trung gian giữa khách truy cập và máy chủ.

Bình thường khi khách truy cập vào website thì dữ liệu sẽ gửi tới máy chủ qua cổng 80 và máy chủ xử lý tại thời điểm đó và trả lại dữ liệu cho người dùng. Khi sử dụng Varnish, máy chủ sẽ gửi dữ liệu tới Varnish qua 1 cổng riêng ví đụ 8080, Varnsih sẽ cache lại nội dung này và gửi tới cho người dùng qua cổng 80. Khi người dung truy cập web, nếu không phải xử lý một proceess nào trên máy chủ hoặc dữ liệu không thay đổi so với bản cache thì Varnish sẽ trả kết quả cho người dùng dữ liệu cache mà không truy vấn tới máy chủ nữa.

Do đó dùng Varnish sẽ làm website hoạt động hiệu quả và có tốc độ truy cập nhanh hơn.

Cài Đặt

Đầu tiên chúng ta cài đặt Apache trước

sudo apt-get update
sudo apt-get install apache2

Cài đặt Varnish

sudo apt install varnish

Cấu hình Varnish

Chúng ta  sẽ cấu hình để chuyển hướng request từ cồng 80 đang tới Apache sang Varnish và Varnish sẽ kết nối với Apache thông qua cổng 8080
Đâu tiên sửa cấu hình mặc định của Varnish

sudo nano /etc/default/varnish

Bỏ comment tất cả các dòng dưới chữ DAEMON_OPTS và cấu hình lại như sau:

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"

Lưu và đóng file lại.
Tiếp tục mở file default.vcl:

sudo nano /etc/varnish/default.vcl

Cấu hình như sau:

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

Cấu hình Apache

Hiện tại Apache vẫn đang dùng cổng 80, trong khi Varnish đang dùng cổng 8080 để kết nối tới Apache, do đó chúng ta phải đổi lại cổng cho Apache để Apache chỉ nhận dữ liệu từ Varnish và bỏ lại cổng 80 cho Varnish.

sudo nano /etc/apache2/ports.conf

Thiết lập cả NameVirtualHostListen thành cổng 8080 và chỉ nhận truy cập từ localhost, cấu hình như sau:

NameVirtualHost 127.0.0.1:8080
Listen 127.0.0.1:8080

Thiết lập lại file virtual host mặc định như sau:

sudo nano /etc/apache2/sites-available/default

Thay đổi cổng  thành 8080:

 <VirtualHost 127.0.0.1:8080>

Sau đó khởi động lại cả Apache và Varnish:

sudo service apache2 restart
sudo service varnish restart

Vậy là đã cấu hình xong, ngay bây giờ khách truy cập vào website của bạn đã được cache, bạn có thể xem chi tiết Varnish đang hoạt động bằng câu lệnh sau:

varnishstat

Liên quan: