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?