«Прятал» медленный REST API за nginx.
Возникли известные сложности — как обеспечить когерентность кэша?
Если для пары url это еще можно было сделать чисто через конфигурацию, то при десяти и более это было уже за гранью здравого смысла.
Все что нагуглил видел, было немного монстроподобно.
Очень хотелось вот такой(или подобной) конфигурации:
location ~ ^/zone_two/(.*)$ { proxy_cache zone_two; proxy_cache_key $document_uri; proxy_cache_valid 60m; set $do_invalidate 0; if ($request_method = PUT) { set $do_invalidate 1; } proxy_cache_invalidate $do_invalidate; # Tadaaa!!! proxy_pass http://127.0.0.1:9102/$1; }
В итоге родился велосипед — github.com/egorse/ngx-proxy-cache-invalidate.
Работает с 1.8.0, 1.8.1.
Другие версии nginx не тестировал.
Критика всячески приветствуется. Особенно, если по «потрохам» nginx.
ссылка на оригинал статьи https://habrahabr.ru/post/280940/
Добавить комментарий