Câu hỏi nhanh về 'người dùng mới' của CloudFlare dành cho bạn:
ĐẶT VẤN ĐỀ: Các trang HTML được cung cấp bởi máy chủ gốc của tôi không bao giờ thay đổi. Tất cả nội dung động được tải xuống qua JavaScript sau khi trang được tải trong trình duyệt của người dùng. Nội dung động do JavaScript tạo ra phụ thuộc một phần vào chuỗi truy vấn của URL nhưng bản thân chuỗi truy vấn không ảnh hưởng đến nội dung HTML được tải xuống ban đầu. Do đó, các URL sau đây đều tạo chính xác cùng một HTML từ nguồn gốc trước khi được JavaScript xử lý trong trình duyệt:
https://www.example.com/private/my-investments?port portfolioID = 296
https://www.example.com/private/my-investments?port portfolioID = 340
https://www.example.com/private/my-investments?port portfolioID=319
CÂU HỎI: Theo mặc định rằng CloudFlare không lưu trữ HTML, tôi sẽ xây dựng Quy tắc trang của mình như thế nào để một bản sao được lưu trong bộ nhớ cache của https://www.example.com/private/my-investments?[anyValue] được trả lại cho tất cả người dùng ? Đây là những gì tôi đã thử:
"CACHE MỌI THỨ:" Sử dụng chỉ thị 'Cache Mọi thứ' khiến HTML của tôi được lưu trong bộ nhớ cache (tốt) nhưng nó sử dụng toàn bộ chuỗi truy vấn như một phần của khóa bộ đệm (xấu). Vì vậy, nếu người dùng truy cập URL sau ...
https://www.example.com/private/my-investments?port portfolioID = 296
... và sau đó mười giây sau đó truy cập cùng một URL với một chuỗi truy vấn khác, như:
https://www.example.com/private/my-investments?port portfolioID = 340
... CloudFlare coi yêu cầu sau đó là bộ đệm MISS (cf-cache-status: MISS) và truy cập lại máy chủ gốc của tôi. Điều này mặc dù thực tế là HTML được trả về từ nguồn gốc giống hệt nhau cho cả hai URL.
"IGNORE QUERY CHUINGI CHUINGI CHUINGI:" Tôi nghĩ chắc chắn rằng tôi sẽ khắc phục vấn đề này bằng cách chọn tùy chọn "IGNORE QUERY STRING CACHING". Nhưng khi sử dụng tùy chọn này trong Quy tắc trang, không có HTML nào được lưu vào bộ đệm; Chỉ các tệp .js, .css và .png được lưu trữ. Và một lần nữa, nguồn gốc của tôi bị ảnh hưởng cho mỗi lần gọi dữ liệu HTML. :
Tôi cảm thấy như tôi phải thiếu một cái gì đó rõ ràng. Có suy nghĩ gì không?
CẬP NHẬT : Có một ý tưởng tôi muốn chạy theo bạn. Tôi có thể giải quyết vấn đề này bằng cách thay đổi lược đồ URL nội bộ của mình sang sử dụng '#' thay vì '?' Vì vậy, thay vì một URL như ...
https://www.example.com/private/my-investments?port portfolioID = 296
.. Tôi sẽ sử dụng một cái gì đó như:
https://www.example.com/private/my-investments#port portfolioID = 296
Điều này sẽ ngăn các tham số chuỗi truy vấn được truyền đến CloudFlare ... Bạn nghĩ gì?
Lễ hội