Điểm:0

Làm cách nào để định cấu hình HAProxy để bỏ qua tiêu đề máy khách `Pragma: no-cache`?

lá cờ ve

Chúng tôi có một dịch vụ web phía sau máy chủ HAProxy đang chạy trong bộ nhớ đệm proxy ngược cấu hình. Các máy chủ phụ trợ gửi Kiểm soát bộ đệm các tiêu đề chính xác cho tất cả các phản hồi để HAProxy có thể lưu trữ tất cả các phản hồi theo thông số kỹ thuật HTTP.

Tuy nhiên, khi người dùng cuối nhấn nút Shift+Reload trong ví dụ: Google Chrome, ứng dụng khách (Chrome) gửi Pragma: không có bộ đệmKiểm soát bộ đệm: không có bộ đệm điều này buộc HAProxy phải luôn tìm nạp yêu cầu từ máy chủ phụ trợ. Rõ ràng, các cuộc tấn công DDoS có thể sử dụng thủ thuật tương tự này để dễ dàng gây thêm tải cho các máy chủ phụ trợ.

Vì chúng tôi biết rằng các tiêu đề bộ đệm là chính xác, làm cách nào chúng tôi có thể định cấu hình HAProxy để bỏ qua ứng dụng khách đã gửi Pragma: không có bộ đệm và tránh gọi chương trình phụ trợ khi yêu cầu có thể được thực hiện trực tiếp từ bộ đệm HAProxy?

Tôi biết rằng việc bỏ qua tiêu đề này sẽ không ổn đối với việc sử dụng proxy chung, nhưng trong trường hợp này, chúng tôi kiểm soát cả proxy ngược và chương trình phụ trợ để chúng tôi biết điều này là ổn.

Đây là một ví dụ về phản hồi từ máy chủ phụ trợ sẽ được thực hiện lại từ phụ trợ khi máy khách gửi kiểm soát bộ đệm: không có bộ đệmpragma: không có bộ đệm:

kiểm soát bộ đệm: công khai, tuổi tối đa=31536000, s-maxage=31536000
độ dài nội dung: 463
loại nội dung: image/svg+xml
ngày: Thứ năm, ngày 24 tháng 6 năm 2021 14:14:19 GMT
etag: "338"
hết hạn: Thứ Sáu, ngày 24 tháng 6 năm 2022 14:14:19 GMT
máy chủ: Apache
tùy chọn loại nội dung x: nosniff

Thật rõ ràng rằng Tổng cộng không cần tìm nạp lại cái này từ các máy chủ phụ trợ vì nó có giá trị trong một năm đối với bất kỳ người dùng nào sử dụng URL đã cho. Cũng đáng chú ý là Theo mặc định, NGINX không tôn trọng tiêu đề [client] Pragma.

lá cờ ve
Trong thực tế, chúng tôi có nhiều giao diện dự phòng chạy song song và nhiều phụ trợ dự phòng nhưng nó thực sự không thay đổi bất cứ điều gì về vấn đề. Vì vậy, tôi đã viết câu hỏi đơn giản hóa ở trên giống như chỉ có một giao diện người dùng và một máy chủ phụ trợ.
lá cờ ve
https://www.haproxy.com/documentation/aloha/latest/traffic-man Quản lý/lb-layer7/caching-small-objects/ nói rằng "*Các đối tượng chỉ được lưu vào bộ nhớ cache nếu tất cả những điều sau đây là đúng: [...] Phản hồi không có tiêu đề "Kiểm soát bộ đệm: không có bộ đệm"*" cho thấy rằng điều này hiện không thể định cấu hình được. Về mặt kỹ thuật, đó là về thành phần Aloha nhưng tôi đoán nó cũng có thể áp dụng cho toàn bộ HAProxy.

Đă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.