Điểm:0

Xác định xem có cần thay đổi cấu hình vecni sau khi thêm 3 cookie mới không

lá cờ mx
# Giữ tất cả các cookie này
nếu (req.http.Cookie) {
  đặt req.http.Cookie = ";" + req.http.Cookie;
  đặt req.http.Cookie = regsuball(req.http.Cookie, "; +", ";");
  đặt req.http.Cookie = regsuball(req.http.Cookie, ";(location|usertype|viewed-products)=", "; \1=");
  đặt req.http.Cookie = regsuball(req.http.Cookie, ";[^ ][^;]*", "");
  đặt req.http.Cookie = regsuball(req.http.Cookie, "^[; ]+|[; ]+$", "");

  nếu (req.http.Cookie == "") {
    hủy đặt req.http.Cookie;
  }
}

Tôi có cấu hình véc ni này và tôi đã thêm 3 cookie mới, vậy tôi có cần thay đổi gì không? Theo hiểu biết của tôi, ngay cả khi tôi đã thêm 3 cookie mới, những cookie duy nhất sẽ được sử dụng để xác định giá trị được lưu trong bộ nhớ cache nào bạn sẽ nhận được từ véc ni chỉ được xác định bởi những cookie bạn giữ trong cấu hình, vì vậy chúng sẽ được xác định theo vị trí , loại người dùng và các sản phẩm đã xem. Vì chúng tôi chỉ có 2 vị trí, 3 loại người dùng và 3 sản phẩm nên chúng tôi không thể có nhiều hơn 332 18 giá trị bộ đệm khác nhau. Tôi có đúng không?

Điểm:0
lá cờ in

Bạn nói đúng, việc thêm cookie mới không cần thiết cho bộ nhớ đệm sẽ không ảnh hưởng đến cấu hình VCL của bạn.

đầu ra Varnishlog

Khi nghi ngờ, hãy sử dụng dầu bóng. Đây là một lệnh bạn có thể sử dụng để theo dõi hành vi của cookie:

varnishlog -g request -i ReqUrl -I ReqUnset:Cookie -I ReqHeader:Cookie

Lệnh này sẽ chỉ hiển thị URL của yêu cầu và các dòng nhật ký khác nhau nơi các giá trị cookie được đặt và bỏ đặt.

Hãy tưởng tượng việc gửi yêu cầu HTTP sau tới máy chủ Varnish của bạn:

curl -H "Cookie: foo=bar; location=test" http://localhost

Yêu cầu này gửi 2 cookie tới Varnish:

  • cái chưa biết foo cookie được cho là đã bị xóa
  • Các địa điểm cookie được cho là được lưu giữ

Đây là kết quả ghi nhật ký:

* << Yêu cầu >> 132325
- Yêu cầu URL /
- Cookie ReqHeader: foo=bar; vị trí = kiểm tra
- Yêu cầu bỏ đặt cookie: foo=bar; vị trí = kiểm tra
- Cookie ReqHeader: ;foo=bar; vị trí = kiểm tra
- Yêu cầu Unset Cookie: ;foo=bar; vị trí = kiểm tra
- Cookie ReqHeader: ;foo=bar;location=test
- Yêu cầu Unset Cookie: ;foo=bar;location=test
- Cookie ReqHeader: ;foo=bar; vị trí = kiểm tra
- Yêu cầu Unset Cookie: ;foo=bar; vị trí = kiểm tra
- Cookie ReqHeader: ; vị trí = kiểm tra
- Yêu cầu bỏ đặt cookie: ; vị trí = kiểm tra
- Cookie ReqHeader: vị trí=kiểm tra

Như bạn có thể thấy, các foo cookie được loại bỏ độc đáo trong khi địa điểm cookie được giữ lại.

Kiểm soát các biến thể bộ đệm

Tôi thấy rằng bạn đang cố gắng kiểm soát số lượng biến thể bộ đệm, điều này có ý nghĩa.

Vấn đề là các yêu cầu độc hại có thể tạo ra các biến thể bộ đệm không mong muốn.

Nếu số lượng giá trị trên mỗi cookie quá hạn chế, tôi khuyên bạn nên đưa chúng vào logic biến thể bộ đệm của mình.

Bạn có đang sử dụng các giá trị cookie trong vcl_hash logic cho điều đó? hay bạn sử dụng Thay đổi: Cookie cho rằng?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.