Hi. I'm trying to use 2 level proxying to cache files delivered with X-Accel-Redirect. This kinda works, the only thing missing is getting the cache_key to be the filename.
If `proxy_cache` is unset (or set to the default), the caching mechanism "works": - Every request gets cached (good) - Different URLs that map to the same file get mapped to different cache keys (bad) - I get the header "X-Banana" with the correct file path (good) If `proxy_cache` is set to `$sent_http_x_test_header`: - Every request gets cached (good) - All URLs map to the same cache (very bad!) - I don't get the 'X-Banana' header at all This leads me to believe that in the second case, `$sent_http_x_test_header` is empty. But it's not in the first case? Why? What can I do? Full config below: proxy_cache_path /cache/nginx levels=1:2 keys_zone=cache:10m inactive=24h; upstream backend { server unix:///tmp/streaming-backend.sock; } server { listen 443 ssl; listen [::]:443 ssl; include /etc/nginx/ssl; index index.html; server_name pilotage.streamall.pw; gzip off; proxy_cache_min_uses 1; proxy_cache cache; proxy_cache_valid 200 24h; location /v/ { rewrite /v/(.+) /$1 break; proxy_pass http://127.0.0.1:9999/; proxy_request_buffering off; # needs 1.7.11 proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie; # proxy_cache_key $sent_http_x_test_header; add_header X-Proxy-Cache $upstream_cache_status; add_header X-Banana $sent_http_x_test_header; } } server { listen 9999; location / { uwsgi_pass backend; include uwsgi_params; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /converted/ { internal; root /nfs/; add_header X-Test-Header $document_uri; } } Posted at Nginx Forum: https://forum.nginx.org/read.php?2,275178,275178#msg-275178 _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx