Tôi muốn lưu vào bộ nhớ cache toàn bộ các trang trên ứng dụng web của chúng tôi (hàng nghìn trang) được tạo bởi ngăn xếp Rails, nhưng không thay đổi thường xuyên. Mỗi kết xuất khá tốn kém về mặt tài nguyên.Varnishd là giải pháp bộ nhớ đệm phù hợp để sử dụng với Rails?
Sự hiểu biết của tôi về cách Varnishd hoạt động là khi một cuộc gọi ban đầu được thực hiện đến URL, Varnishd sẽ kiểm tra lưu trữ bộ nhớ cache của nó, lỗi sẽ diễn ra và yêu cầu sẽ được chuyển đến Rails và trang được tạo sau đó được thêm vào bộ nhớ cache Varnishd.
Bất kỳ cuộc gọi tiếp theo nào được thực hiện cho URL đó và sau đó được cung cấp từ bộ nhớ cache Varnishd, ngăn xếp Rails không được tham gia.
Điều này có đúng hay không?
Làm cách nào để ứng dụng của tôi có thể thông báo cho Varnishd khi một trang cụ thể đã được cập nhật & để phản ánh bất kỳ thay đổi nào được thực hiện trong kho lưu trữ bộ nhớ cache của nó?
Varnishd có phải là lựa chọn tốt cho mục đích này không?
Cảm ơn sự giúp đỡ của bạn - Tôi biết đây là những câu hỏi rất cơ bản, nhưng tài liệu không làm rõ điều này (với tôi ít nhất).
Đúng, Varnish là một proxy ngược HTTP với bộ nhớ đệm HTTP và được tối ưu hóa cho bộ đệm ẩn HTTP. Nếu bạn đã thử Heroku, thì bạn đã thử Varnish. – yfeldblum
Hầu hết các proxy ngược lại thực sự có một cách để "nói" cache rằng nội dung mới có sẵn, tuy nhiên bạn chính xác là bạn cần phải biết máy chủ nào cần tuôn ra, và cấu hình một cách để báo hiệu chúng. Varnish có một giao diện quản lý, một kênh điều khiển, mà bạn có thể kết nối từ ứng dụng của bạn hoặc theo cách thủ công, vì vậy nếu bạn biết máy chủ nào cần tuôn ra, thì việc thực hiện nó khá dễ dàng. –