Bộ nhớ đệm đầu ra trong YARP (YARP Output Caching)
Nguồn: YARP Output Caching
Giới thiệu
Reverse proxy (proxy ngược) có thể được sử dụng để cache (lưu vào bộ nhớ đệm) các phản hồi được proxy và phục vụ các yêu cầu trước khi chúng được proxy đến các server đích. Điều này có thể giảm tải cho các server đích, thêm một lớp bảo vệ và đảm bảo các policy nhất quán được triển khai trên các ứng dụng của bạn.
Tính năng này chỉ có sẵn khi sử dụng .NET 7 trở lên.
Mặc định
Không có output caching (lưu cache đầu ra) nào được thực hiện trừ khi được bật trong cấu hình route hoặc ứng dụng.
Cấu hình
Các policy Output Cache có thể được chỉ định cho từng route thông qua RouteConfig.OutputCachePolicy và có thể được liên kết từ phần Routes của file cấu hình. Giống như các thuộc tính route khác, điều này có thể được sửa đổi và tải lại mà không cần khởi động lại proxy. Tên policy không phân biệt chữ hoa/thường.
Ví dụ:
{
"ReverseProxy": {
"Routes": {
"route1" : {
"ClusterId": "cluster1",
"OutputCachePolicy": "customPolicy",
"Match": {
"Hosts": [ "localhost" ]
}
}
},
"Clusters": {
"cluster1": {
"Destinations": {
"cluster1/destination1": {
"Address": "https://localhost:10001/"
}
}
}
}
}
}Các policy output cache là một khái niệm của ASP.NET Core mà proxy sử dụng. Proxy cung cấp cấu hình ở trên để chỉ định một policy cho mỗi route và phần còn lại được xử lý bởi middleware output caching ASP.NET Core hiện có.
Các policy output cache có thể được cấu hình trong Program.cs như sau:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddOutputCache(options =>
{
options.AddPolicy("customPolicy", builder => builder.Expire(TimeSpan.FromSeconds(20)));
});Sau đó thêm middleware output caching:
var app = builder.Build(); app.UseOutputCache(); app.MapReverseProxy();
Xem tài liệu Output Caching để thiết lập loại output caching mong muốn.