Предложения по крайне агрессивному HTTP-кешированию для ресурсов REST
У меня есть настройка, где я хотел бы иметь чрезвычайно агрессивное HTTP-кэширование на моем внутреннем прокси. По сути, я хочу добиться такой упрощенной стратегии кэширования, как эта:
- любой запрос GET, который не 500x или 400x, кэшируется на неопределенный срок
- любой PUT или POST или DELETE или PATCH, который не 500x или 400x, делает недействительным ресурс и его подпути (поскольку я использую только вложенные ресурсы и часто их использую).
Я также не планирую иметь смешное количество подпутей (около 1000 на ресурс корневого уровня, и, конечно, все меньше и меньше детализации).
В общем, я хочу избежать абсолютного большинства запросов, даже касаясь моего основного приложения.
Я планирую запустить кеширующий бэкэнд на отдельной машине с большим количеством оперативной памяти и плохим хранилищем, и будет одна такая машина (поэтому мне не нужно истекать срок действия через кластер или что-то в этом роде).
Какой прокси-кеш подойдет для этой задачи? Лак или HAProxy? Какие настройки я должен искать для достижения такого рода истечения? Является ли это обычным делом, чтобы сделать REST-серверы удобными для кэширования?
1 ответ
HAproxy является только балансировщиком нагрузки. Это не сделает никакого кеширования для вас.
Лак - хороший выбор для вашего случая. Что касается конфигурации, лучше всего отправлять детали кэширования (ttl/expiry time и cachability) из вашего бэкэнда, которые будут указывать лаку на обработку кеша документа.