Helpex - Trao đổi & giúp đỡ Đăng nhập

Tối ưu hóa tốc độ trang web với bộ nhớ đệm Varnish

Thời gian tải trang là một trong những yếu tố quan trọng nhất đối với hoạt động kinh doanh trực tuyến ngày nay.

Walmart nhận thấy sự gia tăng 2 phần trăm chuyển đổi cho mỗi 1 giây khi cải thiện tốc độ trang web. Amazon nhận thấy doanh thu tăng 1% cho mỗi 100 mili giây cải thiện tốc độ trang web của họ. Akamai nhận thấy rằng:

  • 47 phần trăm mọi người mong đợi một trang web tải trong hai giây hoặc ít hơn.
  • 40% sẽ bỏ qua một trang web nếu mất hơn ba giây để tải.
  • 52% người mua sắm trực tuyến nói rằng tải trang nhanh chóng là rất quan trọng đối với lòng trung thành của họ đối với một trang web.

Chưa chắc nữa? Sau đó, hãy suy nghĩ lại: thời gian tải trang chậm trễ 1 giây dẫn đến:

  • Số lượt xem trang ít hơn 11 phần trăm.
  • Giảm 16% sự hài lòng của khách hàng.
  • Mất 7 phần trăm trong chuyển đổi.

Bạn vẫn không chắc chắn? Được rồi, sau đó có một cái khác:

Bằng cách sử dụng các kỹ thuật được mô tả bên dưới trong bài viết này, bạn có thể tiết kiệm chi phí lưu trữ của mình. Bạn có thể có một trang web hoạt động trên một dịch vụ lưu trữ giá rẻ 15 đô la để phục vụ số lượng người dùng nhiều như một dịch vụ lưu trữ hàng trăm đô la.

Trong bài viết này, chúng tôi sẽ mô tả cách bạn có thể đạt được điều này bằng cách sử dụng Varnish Cache.

Varnish Cache là gì?

Theo tài liệu chính thức, Varnish Cache là một trình tăng tốc ứng dụng web còn được gọi là proxy ngược HTTP bộ nhớ đệm. Nó có thể tăng tốc độ phân phối trang web của bạn với hệ số 300 - 1000x, tùy thuộc vào kiến ​​trúc của bạn. Varnish đi kèm với ngôn ngữ cấu hình riêng gọi là VCL. Varnish được sử dụng trong các nhà cung cấp CDN lớn như Fastly và KeyCDN.

Varnish phục vụ dữ liệu từ bộ nhớ ảo, một phản hồi được trả lại mà không cần truy cập vào ứng dụng và máy chủ cơ sở dữ liệu. Mỗi máy chủ Varnish có thể xử lý hàng nghìn yêu cầu mỗi giây, nhanh hơn nhiều so với khung của một trang web 'thông thường'.

Làm thế nào nó hoạt động?

Tối ưu hóa tốc độ trang web với bộ nhớ đệm Varnish

Bí quyết tăng tốc là cài đặt Varnish trước máy chủ ứng dụng của bạn (Apache, Nginx, IIS). Trong trường hợp này, mỗi yêu cầu HTTP từ trình duyệt trước tiên sẽ chuyển đến máy chủ Varnish. Nếu yêu cầu hiện tại không được tìm thấy trong bộ nhớ cache, Varnish sẽ yêu cầu máy chủ ứng dụng của bạn, lưu phản hồi vào bộ nhớ cache và gửi phản hồi trở lại trình duyệt. Tất cả các yêu cầu tiếp theo cho các URL tương tự sẽ được phục vụ từ bộ đệm Varnish do đó sẽ dỡ máy chủ ứng dụng của bạn.

Một ưu điểm khác của phương pháp này là Varnish sẽ cải thiện tính khả dụng của trang web của bạn. Ví dụ: nếu một lỗi nghiêm trọng PHP làm hỏng trang web của bạn, các trang vẫn sẽ được phân phát từ bộ nhớ cache Varnish và người dùng cuối sẽ không nhận ra rằng đã xảy ra lỗi.

Tất nhiên, mỗi cách tiếp cận đều có mặt trái của nó. Nếu bạn thay đổi nội dung cho một số trang của mình, người dùng của bạn sẽ không thể thấy ngay những thay đổi này vì họ sẽ nhận được phiên bản cũ của trang từ bộ đệm Varnish. Nhưng vấn đề này có thể dễ dàng được khắc phục bằng cách buộc Varnish làm mất hiệu lực các tài nguyên cụ thể bằng cách gửi cái gọi là yêu cầu 'PURGE' tới nó, để thông báo rằng có một nội dung mới cho các URL được chỉ định. Varnish sẽ xóa nội dung đã lưu trong bộ nhớ cache cho các URL này và yêu cầu lại chúng từ máy chủ của bạn. Bạn cũng có thể giảm thời gian lưu trữ bản sao của một trang trong bộ nhớ đệm bằng cách chỉ định tỷ lệ thời gian tồn tại (ttl), chẳng hạn như 2 phút. Điều này sẽ buộc Varnish cập nhật dữ liệu trong bộ nhớ cache của nó thường xuyên hơn.

Một nhược điểm khác liên quan đến lý do bảo mật; Varnish chỉ có thể phục vụ người dùng ẩn danh và sẽ xóa tất cả cookie theo phiên cụ thể khỏi tiêu đề HTTP (điều này có thể được quản lý qua VCL). Yêu cầu từ người dùng đã đăng ký sẽ không được lưu vào bộ nhớ đệm và sẽ chuyển trực tiếp đến máy chủ ứng dụng của bạn.

Cài đặt Varnish Cache

Có rất nhiều bài viết hay về cách cài đặt và cấu hình Varnish và chúng tôi sẽ không trình bày chi tiết về vấn đề này trong bài viết của chúng tôi. Ví dụ, bạn có thể kiểm tra bài viết này (bạn có thể bỏ qua tất cả các bước không liên quan đến cài đặt Varnish).

Kiểm tra bộ nhớ đệm Varnish

Sử dụng Varnish yêu cầu thay đổi cài đặt DNS cho nhà cung cấp tên miền của bạn. Điều này là OK đối với máy chủ sản xuất, nhưng làm thế nào để kiểm tra nó trên môi trường phát triển của bạn?

Giả sử trang web sản xuất của chúng tôi được lưu trữ trên địa chỉ IP 140.45.129.179 và chúng tôi đã triển khai máy chủ Varnish của mình trên 165.227.10.154. Một cách tiếp cận là buộc trình duyệt truy cập 165.227.10.154 thay vì 140.45.129.179 bằng cách thay đổi địa chỉ IP miền trong tệp của máy chủ (% WINDIR% \ System32 \ drivers \ etc \ hosts). Nhưng điều này yêu cầu bạn khởi động lại máy tính của mình mỗi khi bạn thay đổi tệp của máy chủ.

Lưu ý: trong bài viết này, chúng tôi sử dụng Trình gỡ lỗi HTTP , nhưng bạn có thể sử dụng Fiddler, Wireshark hoặc bất kỳ trình kiểm tra HTTP nào khác mà bạn quen thuộc.

Nếu bạn đã cài đặt ứng dụng HTTP Debugger trên máy tính của mình, bạn có thể thực hiện việc này mà không cần thay đổi tệp của máy chủ và không cần khởi động lại máy tính. Để thực hiện việc này, chỉ cần thêm Quy tắc chuyển hướng TCP / IP vào Trình gỡ lỗi HTTP như được hiển thị trên hình ảnh:

Tối ưu hóa tốc độ trang web với bộ nhớ đệm Varnish

Mặt tích cực của giải pháp này là trong trường hợp này, Varnish có thể được cấu hình trên bất kỳ cổng nào chứ không chỉ đến 80, và bạn có thể nhanh chóng bật / tắt chuyển hướng mà không cần khởi động lại máy tính.

Dưới đây là phản hồi tương tự từ máy chủ web không có và có bật bộ đệm Varnish. Như bạn có thể thấy trên hình ảnh bên phải, trang đã được phân phát từ bộ nhớ cache và Varnish đã thêm / xóa một số tiêu đề HTTP (điều này có thể được quản lý thông qua VCL).

Tối ưu hóa tốc độ trang web với bộ nhớ đệm Varnish

Kiểm tra tải

Bây giờ, hãy kiểm tra xem trên thực tế Varnish có thể tăng tốc trang web như thế nào bằng cách thực hiện kiểm tra tải bằng dịch vụ loader.io.

Đối với thử nghiệm của chúng tôi, chúng tôi đã chọn gói miễn phí cho phép tạo 10.000 yêu cầu trong 15 giây. Trang web thử nghiệm là một trang web ASP.NET đơn giản được lưu trữ trên Microsoft Azure (IIS) với giá khoảng $ 100 / m và không sử dụng MS SQL. Varnish Cache được lưu trữ trên giọt DigitalOcean với giá 10 đô la / m.

Dưới đây là kết quả kiểm tra khi không sử dụng và sử dụng Varnish Cache. Khá ấn tượng phải không?


Tối ưu hóa tốc độ trang web với bộ nhớ đệm Varnish

Phần kết luận

Như chúng ta thấy, sử dụng Varnish, bạn thực sự có thể tăng tốc độ trang web của mình lên hàng chục lần, tăng độ tin cậy và tiết kiệm chi phí lưu trữ cùng một lúc. Nghe có vẻ tuyệt vời, nhưng như chúng ta đã thấy, nó thực sự hoạt động.

Liên kết hữu ích

21 hữu ích 0 bình luận 7.9k xem chia sẻ

Có thể bạn quan tâm

loading