id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,uname,nginx_version 1423,response vary headers not used in the cache key,gedl@…,,"Scenario: use nginx to cache server responses based on - scheme of the request - host of the proxy - request uri - values of the request headers as selected by the response vary headers '''Request 1:''' {{{ curl -H ""Authorization: one"" -I http://localhost:8081/some_uri HTTP/1.1 200 OK Server: nginx Date: Sat, 11 Nov 2017 01:56:24 GMT Content-Type: application/json Content-Length: 1389 Connection: keep-alive Access-Control-Allow-Headers: Accept, Authorization, Content-Type, x-api-key, Accept-Language Access-Control-Allow-Methods: GET, POST, PUT, PATCH, OPTIONS, DELETE Access-Control-Allow-Origin: * Vary: Authorization Cache-Control: no-transform, max-age=10, s-maxage=10 request-id: da208a4310e0a67f loc: local processing-time: 307 Vary: Accept-Encoding X-Cached: MISS }}} Comment: the request was a cache miss. all good '''Request 2''' {{{ curl -H ""Authorization: two"" -I http://localhost:8081/api/some_uri HTTP/1.1 200 OK Server: nginx Date: Sat, 11 Nov 2017 01:56:28 GMT Content-Type: application/json Content-Length: 1389 Connection: keep-alive Access-Control-Allow-Headers: Accept, Authorization, Content-Type, x-api-key, Accept-Language Access-Control-Allow-Methods: GET, POST, PUT, PATCH, OPTIONS, DELETE Access-Control-Allow-Origin: * Vary: Authorization Cache-Control: no-transform, max-age=10, s-maxage=10 request-id: da208a4310e0a67f loc: local processing-time: 307 Vary: Accept-Encoding X-Cached: HIT }}} Comment: a different value for the authorization header was specified on the second request. As the response includes Vary: Authorization, I'd expect the second request to be a cache MISS. However, it was a cache HIT '''Configuration file:''' {{{ worker_processes 4; events { worker_connections 768; multi_accept on; } http { upstream target { server localhost:8082; } proxy_cache_path /Users/gluiz/dev/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; add_header X-Cached $upstream_cache_status; server { listen 8081; server_name anonymous; proxy_intercept_errors off; location / { proxy_cache my_cache; proxy_set_header Host $http_host; proxy_pass http://target$request_uri; } ssl_verify_client off; } server_tokens off; } }}} ",defect,closed,minor,,other,1.12.x,fixed,,,Darwin hostname.local 16.7.0 Darwin Kernel Version 16.7.0: Thu Jun 15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64 x86_64,"nginx version: nginx/1.12.2 built by clang 9.0.0 (clang-900.0.38) built with OpenSSL 1.0.2l 25 May 2017 (running with OpenSSL 1.0.2m 2 Nov 2017) TLS SNI support enabled configure arguments: --prefix=/usr/local/Cellar/nginx/1.12.2_1 --with-http_ssl_module --with-pcre --sbin-path=/usr/local/Cellar/nginx/1.12.2_1/bin/nginx --with-cc-opt='-I/usr/local/opt/pcre/include -I/usr/local/opt/openssl/include' --with-ld-opt='-L/usr/local/opt/pcre/lib -L/usr/local/opt/openssl/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --pid-path=/usr/local/var/run/nginx.pid --lock-path=/usr/local/var/run/nginx.lock --http-client-body-temp-path=/usr/local/var/run/nginx/client_body_temp --http-proxy-temp-path=/usr/local/var/run/nginx/proxy_temp --http-fastcgi-temp-path=/usr/local/var/run/nginx/fastcgi_temp --http-uwsgi-temp-path=/usr/local/var/run/nginx/uwsgi_temp --http-scgi-temp-path=/usr/local/var/run/nginx/scgi_temp --http-log-path=/usr/local/var/log/nginx/access.log --error-log-path=/usr/local/var/log/nginx/error.log --with-http_gzip_static_module --with-http_v2_module"