Do hiệu suất chậm của trang web, tôi bắt đầu tìm kiếm thông tin Varnish làm giải pháp lưu vào bộ nhớ cache và có một số câu hỏi về Google Analytics.Cách xử lý cookie trong ngăn xếp Varnish
Khi có 5K người dùng hoạt động trên trang web (theo báo cáo lưu lượng truy cập trực tiếp của GA), máy chủ tải trên máy chủ phụ tăng vọt lên 30-40 +, hàng đợi của hành khách bắt đầu xếp chồng và trang web gần như không sử dụng được. Tôi biết về các truy vấn chậm và công việc cơ sở dữ liệu đòi hỏi phải có hiệu suất tốt hơn, nhưng tại thời điểm này tôi không có tài nguyên để tối ưu hóa các truy vấn và lược đồ db, chỉ mục, v.v.
Tôi tạo ra một sơ đồ để hiển thị tốt hơn chồng, đây là cách ngăn xếp hiện tại trông giống như: (trang web hiện lưu trữ hình ảnh/css/js trong CDN - Akamai)
Tôi muốn muốn thêm hai trường hợp véc ni ở phía trước của máy chủ phụ trợ để điều bộ nhớ cache và ngăn xếp sẽ trông như thế này:
trang web này là một trang web tin tức, và tôi đang tìm kiếm một lời khuyên, làm thế nào để chống đỡ erly xử lý các tập tin cookie và bộ nhớ đệm. Đối với giai đoạn 1, tôi muốn loại trừ hoàn toàn người dùng được xác thực hoàn toàn và phân phối nội dung động vì không có nhiều người dùng được xác thực đồng thời.
Sự nhầm lẫn là với cookie của Google Analytic. Sự hiểu biết của tôi là Google đặt cookie trên ứng dụng khách bằng javascript và ứng dụng khách giao tiếp trực tiếp với Google, vì vậy chương trình phụ trợ không cần cookie GA mà khách hàng gửi và an toàn để bỏ đặt chúng trong chương trình con vcl_recv.
sub vcl_recv {
// Remove has_js and Google Analytics __* cookies.
set req.http.Cookie = regsuball(req.http.Cookie, "(^|;\s*)(_[_a-z]+|has_js)=[^;]*", "");
// Remove a ";" prefix, if present.
set req.http.Cookie = regsub(req.http.Cookie, "^;\s*", "");
}
Câu hỏi
- Đây có phải là một cách tiếp cận an toàn không?
- Google sẽ vẫn theo dõi đúng cách, bao gồm cả khách truy cập lặp lại?
- Có điều gì khác mà tôi cần xem trong chính sách của mình cho giai đoạn 1 không?
Vì véc ni theo mặc định sẽ KHÔNG cache bất kỳ thứ gì có bộ cookie, có an toàn để triển khai ngăn xếp được mô tả ở trên không bằng cách thêm chính sách xóa cookie GA? Tôi hiểu rằng nếu không tinh chỉnh chính sách VCL, tôi sẽ không đạt được tỷ lệ truy cập cao, tuy nhiên trong các thử nghiệm của tôi, có vẻ như ngay cả với véc-ni mặc định ở phía trước máy chủ phụ trợ, có tỷ lệ lần truy cập 30% và sau khi phân tích, tôi thấy hầu hết là tệp js/css và tệp hình ảnh, vì vậy rõ ràng một số tệp tĩnh không được Akamai hoặc thậm chí Apache phân phát, thay vào đó chúng được chuyển tới Hành khách/Đường ray để phân phát tệp tĩnh. Điều này chắc chắn cần phải được sửa chữa.
- Varnish sẽ cải thiện hiệu suất chỉ mặc định?
Tôi mới dùng véc ni để mọi chi tiết/tư vấn bổ sung về véc ni hoặc ngăn xếp mà tôi đề xuất được đánh giá cao.
Đối với giai đoạn 2 +
Kể từ khi nội dung được cập nhật, tôi đang lập kế hoạch để thực hiện các cuộc thanh trừng trên cả hai máy chủ véc ni, kích hoạt bởi các máy chủ backend khi một sự thay đổi áp dụng, chẳng hạn như một lời nhận xét của người dùng, lần xem trang, vv .
Có rất nhiều bài viết được lưu trữ không được cập nhật, có an toàn để lưu chúng vĩnh viễn không?
Vì tôi dự định sử dụng RAM để lưu trữ véc ni, nên tôi có thêm véc ni (thứ ba) và sử dụng đĩa để lưu trữ, cho các trang được lưu trữ một cách rõ ràng. Có lẽ thêm nginx stack ở phía trước của máy chủ véc ni để hướng lưu lượng truy cập đến một trường hợp véc ni cụ thể cho nội dung được lưu trữ? Cân bằng tải -> Cặp proxy ngược Nginx> Cặp Varnish -> (véc ni LB đến 8 máy chủ phụ trợ)
Tôi đánh giá cao bất kỳ lời khuyên nào về kiến trúc. Nếu bạn cần thêm chi tiết để cung cấp lời khuyên tốt hơn, vui lòng cho tôi biết và tôi sẽ sẵn lòng cung cấp cho bạn thêm chi tiết.
Richard, trước hết tôi muốn cảm ơn bạn rất nhiều vì đã dành rất nhiều thời gian để cung cấp giải thích chi tiết như vậy với tài liệu tiền thưởng định cấu hình ứng dụng ruby phụ trợ.Tôi sẽ làm việc với nhóm dev của chúng tôi và cập nhật bài đăng với kết quả kiểm tra. Tôi chắc chắn sẽ hỏi những câu hỏi bổ sung, vì bạn đã cung cấp :) – Nerses
Không phải lo lắng. Điều quan trọng là để ứng dụng và Varnish hoạt động cùng nhau. Tôi vẫn còn khá mới với Varnish bản thân mình, nhưng có rất nhiều nguồn lực ra khỏi đó cho một số vấn đề thực sự khó khăn bạn sẽ phải đối mặt. BTW, chúng tôi không có bình luận trên trang web của chúng tôi, vì vậy chúng tôi có thể nhận được tỷ lệ truy cập bộ nhớ cache lên đến 85% trong thời gian cao điểm trong ngày. –
Phản hồi rất tốt. Cảm ơn. – cherouvim