Основная идея кэширования состоит в том, чтобы предоставлять одинаковые ответы на один и тот же запрос, не запрашивая серверную систему. Проблема с запросами POST заключается в том, что вам нужно проверить тело, чтобы решить, когда два запроса совпадают. Лучшее решение - перейти с POST на GET.
Если это не применимо, вы можете попробовать прокси-модуль Nginx со следующей настройкой (см. Необходимое ограничение размера тела):
location @apache_backend {
...
proxy_cache_methods POST;
proxy_cache_key "$uri|$request_body";
client_max_body_size 1k;
}
Вы отметили свой вопрос с помощью nginx , но, очевидно, вы не знаете о директивах proxy_cache_methods
и proxy_cache_key
, который также должен позволить вам проксировать ответы POST при условии, что ваш сервер использует заголовки управления кешем для ответов POST.
Идея состоит в том, чтобы включить метод POST
с proxy_cache_methods и найти подходящий строка для proxy_cache_key . Значение по умолчанию $ scheme $ proxy_host $ request_uri;
не будет работать так, как вы подозреваете, но вы можете выбрать из большого списка переменных Nginx , чтобы получить то, что вам подходит. .