Problems with cache by mime/type
Jorge Pereira
jpereiran at gmail.com
Fri Nov 30 13:32:39 UTC 2018
Hi Francis,
I sent the wrong snip. the correct is using
$upstream_http_content_type as can be seen below. basically, always
when I use "proxy_cache_bypass $no_cache;" that impact the value of
"map $upstream_http_content_type $no_cache".... I didn't understand
what is the reason. thanks for any suggestions.
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
map $upstream_http_content_type $no_cache {
default 1;
application/zip 0; # *.zip files
application/octet-stream 0; # /artifactory/api/pypi and any
other binary files.
application/java-archive 0; # *.jar
application/x-nupkg 0; # /artifactory/api/nuget/.*/Download/.*
}
proxy_cache_path $CACHE_FOLDER
levels=1:2
keys_zone=artifactory_cache:$CACHE_KEYS_SIZE
max_size=$CACHE_SIZE
inactive=$CACHE_DURATION
use_temp_path=off;
server {
listen 80;
server_name mywww.lan;
set $upstream https://172.16.0.1/artifactory;
proxy_read_timeout 10;
proxy_pass_header Server;
proxy_cookie_path ~*^/.* /;
proxy_next_upstream http_503 non_idempotent;
proxy_set_header Host $http_host;
proxy_cache artifactory_cache;
proxy_cache_bypass $no_cache;
proxy_no_cache $no_cache;
add_header X-Proxy-Cache $upstream_cache_status;
proxy_cache_key $scheme$proxy_host$request_uri$auth_cache_key;
proxy_cache_valid 200 24h;
proxy_ignore_headers "Set-Cookie" "Cache-control";
location ~/mypath(?<relative_uri>.*)$ {
proxy_pass $upstream${relative_uri}${is_args}${args};
}
}
}
--
Jorge Pereira
On Fri, Nov 30, 2018 at 11:12 AM Francis Daly <francis at daoine.org> wrote:
>
> On Thu, Nov 29, 2018 at 09:51:13PM -0200, Jorge Pereira wrote:
>
> Hi there,
>
> > I am using the nginx/1.12.0 and I am trying to use the below config.
> > but, the below "map" by "$upstream_http_content_type" is always
> > matching with default value "1". but, if I remove "proxy_cache_bypass"
> > then the map it works. therefore, I need the "proxy_cache_bypass "
> > capability.
>
> It looks like you want to bypass the cache (and therefore always serve
> these requests from upstream), for certain requests.
>
> Is that correct?
>
> If so -- you must set the "$no_cache" variable based on something in
> the request, not on something in the response like a $sent_http_ variable.
>
> > map $sent_http_content_type $no_cache {
> > default 1;
> >
> > application/zip 0; # *.zip files
> > application/octet-stream 0; # /artifactory/api/pypi and any
> > other binary files.
> > application/java-archive 0; # *.jar
> > application/x-nupkg 0; # /artifactory/api/nuget/.*/Download/.*
> > }
>
> Perhaps try setting $no_cache based on $request_uri or $document_uri? That
> might fit three of the four above.
>
> (Alternatively: set $no_cache to 0 by default, and to 1 based on requests
> that you are happy to potentially have served from the cache.)
>
> > proxy_cache artifactory_cache;
> > proxy_cache_bypass $no_cache;
> > proxy_no_cache $no_cache;
>
> Good luck with it,
>
> f
> --
> Francis Daly francis at daoine.org
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
More information about the nginx
mailing list