Folosesc NGINX într-o situație unică în care folosesc un proxy invers pentru Sonatype Nexus și vreau să pun în cache fișierele numai dacă sunt mai mari de, să zicem, 10M.
Iată ce am până acum:
amonte tunnel_to_nexus_server {
server localhost:28081;
}
proxy_cache_path niveluri cache=1:2 keys_zone=STATIC:10m inactiv=24h max_size=10g;
Server {
asculta 80;
rescrie ^/nexus$ /nexus/ permanent;
locație ~* ^/nexus(.*)$ {
proxy_pass http://tunnel_to_nexus_server $1;
proxy_set_header Gazdă $gazdă;
proxy_buffering activat;
proxy_cache STATIC;
proxy_cache_valid 200 3650d;
proxy_cache_use_stale error timeout invalid_header actualizare http_500 http_502 http_503 http_504;
}
locație ~* ^/nexus/service/*$ {
expiră -1;
add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
}
locație ~* ^/nexus/*/repodata/*$ {
expiră -1;
add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
}
}
După cum puteți vedea, vreau să memorez aproape permanent fișierele din Nexus, totuși scriu excepții de la proxy pentru */repodata/*
și /Server/*
poteci. Dar, de fapt, ar fi mult similar dacă aș putea seta nginx să cache numai dacă min_size>10M
.
Similar cu cum am eu un dimensiune_max = 10 g
set, caut un echivalent min_size
parametru.