Кэширование ответов XML REST - PullRequest
       14

Кэширование ответов XML REST

0 голосов
/ 30 апреля 2018

Я должен поддерживать устаревшую систему, которая использует REST API, но только POST. Тело содержит данные XML, которые необходимо проанализировать на сервере, чтобы понять ресурс.

Поскольку устаревшее приложение не может быть изменено, мы не можем добавить к нему кэширование, т.е. Redis. Поэтому, чтобы ускорить процесс, я думаю о размещении обратного прокси-кэша, такого как Varnish, между балансировщиком нагрузки и веб-сервером. Но это потребует синтаксического анализа тела запроса для просмотра путей XML.

Существуют ли сторонние модули с открытым исходным кодом, которые делают это и не требуют много переписывания.

Лаковые модули
Nginx + Lua + разбор XML

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

1 Ответ

0 голосов
/ 22 мая 2018

Я нашел один способ сделать кеширование, используя Nginx proxy_cache, который сохраняет ключ в файле на диске, а не в оперативной памяти. Пример nginx.conf

    proxy_cache_key        $http_x_custom_header;
    proxy_cache_revalidate off;
    proxy_cache_methods    POST;
    proxy_cache_valid      200 1m;

Все тело ответа HTTP POST кэшируется в proxy_cache.

...