Varnish Cache là gì?


Varnish là một ứng dụng mã nguồn mở (Open source) có tác dụng lưu lại bộ nhớ đệm của website bằng phương thức làm proxy trung gian giữa nội dung website gốc và trình duyệt, và Varnish sẽ tạo một bản cache ngoài frontend.

» Các yếu tố ảnh hưởng đến điểm Google PageSpeed Insights
» Hướng dẫn tăng tốc website từ A đến Z
» Vì sao duyệt Web ngày càng chậm?

Hãy hiểu đơn giản hơn là, mặc định các webserver sẽ sử dụng cổng 80 để gửi dữ liệu tới trình duyệt để người dùng đọc nó, nhưng khi sử dụng Varnish thì chúng ta sẽ muốn cho người dùng nhận các dữ liệu trong cache nên sẽ sử dụng Varnish làm cổng 80, còn dữ liệu website gốc sẽ được trả về một cổng nào đó mà Varnish sẽ nhận dữ liệu trực tiếp từ đó rồi lưu lại và gửi cho người dùng. Nhìn chung Varnish sẽ làm việc tương tự như việc sử dụng NGINX làm proxy cho Apache vậy nhưng Varnish là một ứng dụng cache nên sẽ làm việc đó tốt hơn và có tốc độ truy xuất tốt hơn.

 

Logo chính thức của Varnish

Tại sao lại sử dụng Varnish?

Varnish là một ứng dụng độc lập nên việc sử dụng Varnish để lưu và truy xuất cache trên website sẽ có những lợi thế như bạn có thể thoải mái tùy chỉnh để nó ghi và truy xuất như mong muốn, mặc dù sẽ hơi nâng cao và khó một chút nhưng nếu bạn hiểu các quy tắt trong VCL (Varnish Configuration Language) thì sẽ rất linh hoạt trong sử dụng, có thể cấu hình cache cho bất cứ loại website nào. Việc Varnish trực tiếp làm proxy để gửi dữ liệu cache cũng sẽ có tốc độ tốt hơn so với hình thức lưu cache thông thường.

Hơn nữa theo mình đánh giá, quy trình ghi và lưu cache trong Varnish hao tốn rất ít tài nguyên, thậm chí là tốn ít hơn quy trình một website thông thường ghi cache ra một file HTML tĩnh (HTML Cache) nên Varnish đang là lựa chọn đáng quan tâm cho các website lớn và có nhiều trang trên website.

Các website nào nên sử dụng Varnish?

Như mình đã nói là Varnish ban đầu sẽ hơi khó cấu hình cho những người dùng phổ thông nên nếu bạn có các website chứa nhiều dữ liệu như blog có nhiều bài viết, tạp chí, tin tức,…với lượng truy cập cao thì sẽ là cơ hội rất tốt để sử dụng Varnish.

Hiện nay những website đang sử dụng Varnish mà bạn có thể kiểm chứng như The New York Times, Facebook,Twitter, Wikipedia,….và hầu hết hiện nay các website lớn với nhiều nội dung như vậy đang sử dụng Varnish để tối ưu hơn về tốc độ website cũng như tiết kiệm tài nguyên.

Các lợi thế của Varnish

Dĩ nhiên Varnish phải có một số lợi thế thì các website lớn kia mới đang sử dụng như vậy. Theo sự hiểu biết và kinh nghiệm của mình, Varnish sẽ có các lợi thế như:

  • Ghi dữ liệu đệm của nội dung truy xuất ra webserver mà không cần thêm bất cứ đoạn code nào vào mã nguồn website.
  • Dĩ nhiên, bạn có thể sử dụng với bất kỳ website nào, ngôn ngữ nào, miễn là nó sử dụng webserver thì đều có thể sử dụng Varnish được.
  • Varnish hoạt động như một kỹ thuật đa luồng (heavily threaded) nên các kết nối vào website không cần phải chờ đợi webserver xử lý, giúp tiết kiệm thời gian truy xuất và hạn chế việc quá tải webserver.
  • Việc cấu hình bằng VCL sẽ giúp bạn linh hoạt hơn để cấu hình, Varnish sẽ trở nên có ích hơn nếu bạn có thể ứng dụng các quy tắt của VCL.
  • Varnish có thể hoạt động được với các kỹ thuật Load Balancing.

Lời kết

Ở trên là những gì mình biết được về Varnish nên mình đã cố gắng giải thích nó theo hướng dễ hiểu nhất. Ở các bài viết tiếp theo của serie này, mình sẽ hướng dẫn các bạn cách cài đặt và thiết lập Varnish trên hai hệ điều hành phổ biến là Ubuntu và CentOS, đồng thời mình cũng sẽ hướng dẫn thiết lập trên hai webserver thông dụng là Apache và NGINX. Kế tiếp là mình sẽ giải thích về các quy tắt trong VCL để bạn có thể dễ dàng làm việc sau này.

 

Hãy nhớ rằng mình hướng dẫn và thiết lập theo cách mà mình đã làm thành công trên nhiều website khác nhau nên nếu bạn gặp các lỗi ngoài mong đợi, hãy Google thêm để biết cách fix nhưng mình chắc chắn là nếu bạn làm theo hướng dẫn của mình thì không có lỗi đâu vì mình đã test kỹ trên nhiều phiên bản hệ điều hành, và test trên nhiều dịch vụ máy chủ khác nhau như DigitalOcean, Linode, A2Hosting, Heroku,…Nếu bạn là người mới, mình khuyến khích các bạn nên sử dụng các dịch vụ máy chủ tại đây và tránh dùng các nền tảng máy ảo đám mây như Google Cloud, Amazon S3, Heroku vì những dịch vụ đó có cấu hình không giống như các dịch vụ máy chủ thông thường mà ta vẫn hay sử dụng.

» Khắc phục tất cả các vấn đề trên trang web của bạn

Có thể bạn quan tâm
25/04/2015
1246