Предложения по крайне агрессивному HTTP-кешированию для ресурсов REST

У меня есть настройка, где я хотел бы иметь чрезвычайно агрессивное HTTP-кэширование на моем внутреннем прокси. По сути, я хочу добиться такой упрощенной стратегии кэширования, как эта:

  • любой запрос GET, который не 500x или 400x, кэшируется на неопределенный срок
  • любой PUT или POST или DELETE или PATCH, который не 500x или 400x, делает недействительным ресурс и его подпути (поскольку я использую только вложенные ресурсы и часто их использую).

Я также не планирую иметь смешное количество подпутей (около 1000 на ресурс корневого уровня, и, конечно, все меньше и меньше детализации).

В общем, я хочу избежать абсолютного большинства запросов, даже касаясь моего основного приложения.

Я планирую запустить кеширующий бэкэнд на отдельной машине с большим количеством оперативной памяти и плохим хранилищем, и будет одна такая машина (поэтому мне не нужно истекать срок действия через кластер или что-то в этом роде).

Какой прокси-кеш подойдет для этой задачи? Лак или HAProxy? Какие настройки я должен искать для достижения такого рода истечения? Является ли это обычным делом, чтобы сделать REST-серверы удобными для кэширования?

1 ответ

Решение

HAproxy является только балансировщиком нагрузки. Это не сделает никакого кеширования для вас.

Лак - хороший выбор для вашего случая. Что касается конфигурации, лучше всего отправлять детали кэширования (ttl/expiry time и cachability) из вашего бэкэнда, которые будут указывать лаку на обработку кеша документа.

Другие вопросы по тегам