2013-05-26 24 views
5

Tôi đã định cấu hình hệ thống của mình bằng cách nghe NginX trên cổng 80, cung cấp nội dung tĩnh và yêu cầu động proxy vào máy chủ phụ trợ.Làm thế nào để cấu hình NginX chỉ phục vụ Nội dung được lưu trong bộ nhớ cache khi Backend bị lỗi (5xx Resp. Codes)?

Tôi có thể định cấu hình NginX để lưu nội dung được tạo bởi phần phụ, nhưng tôi muốn nội dung được lưu trữ này chỉ được phục vụ khi số Backend phản hồi với lỗi http 5xx hoặc khi hoàn toàn không hoạt động.

Chúng tôi đã thử tùy chọn proxy_cache_use_stale với độ tuổi tối đa là 1 giây, nó hoạt động nhưng có một mặt tiêu cực .. chỉ đơn giản là hàng tá yêu cầu được phân phát từ bộ nhớ cache trong thời gian 1 giây. Các yêu cầu này được cung cấp từ bộ nhớ cache sẽ bỏ lỡ quá trình xử lý Backend (Ví dụ: số liệu thống kê).

Chúng tôi chỉ có thể đủ khả năng để sống với tiêu cực này NẾU các backend giảm, Như vậy, bộ nhớ cache sẽ hoạt động như một bản sao lưu hoặc một giải pháp chuyển đổi dự phòng. Nhưng miễn là backend được thiết lập và phản hồi, không có yêu cầu nào được phân phát từ bộ nhớ cache.

tôi sẽ đánh giá cao bất kỳ gợi ý

+1

@Danack Cảm ơn rất nhiều vì đã sửa chữa. Tôi đã bị ngắt kết nối khi tôi đang cố gắng sửa lỗi chính tả ..: (Nhưng, Cảm ơn một lần nữa. –

Trả lời

3
+1

Đây là vấn đề sử dụng cũ, có nghĩa là: Khi nào sử dụng phiên bản cũ của nội dung được lưu trong bộ nhớ cache gốc? có một số mã phản hồi lỗi từ chương trình phụ trợ.Xin vui lòng .. sửa tôi nếu tôi sai. –

+0

Hãy nghĩ về điều đó. Bộ nhớ cache phục vụ thứ gì đó chưa bao giờ lưu trữ? Nếu bạn đặt độ tuổi tối đa là một giây, bạn sẽ đạt được – Melvyn

+0

Oh, Cool .. Gợi ý tuyệt vời .. Tôi sẽ thử, và sẽ đăng cập nhật ;-) –

Các vấn đề liên quan