I've been trying to figure out why Im failing to achieve fastcgi caching for a rewrite rule applied php page.
While all other request wonderfully cache, the rewrite ^(.+)/special/?$ /inc/special.php?req=$1 last;
always sent an $upstream_cache_status MISS.
I tried copying the same fastcgi_cache
parameters for the */special/*
page as well. But not working.
Anyone please suggest where this goes wrong.
fastcgi_cache_path /etc/nginx/cache/webcache levels=1:2 keys_zone=wbcache:100m inactive=60m; server { server_name example.com www.example.com; root /var/www/html; index index.php index.html; set $skip_cache 0; rewrite ^(.+)/special/?$ /inc/special.php?req=$1 last; location = /inc/special.php { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_ignore_headers Cache-Control Expires Set-Cookie; fastcgi_hide_header "Set-Cookie"; fastcgi_cache_key "$scheme$request_method$host$request_uri"; fastcgi_cache_use_stale updating error timeout invalid_header http_500; fastcgi_cache_lock on; fastcgi_cache_valid any 300s; fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; fastcgi_cache wbcache; fastcgi_cache_background_update on; fastcgi_param CONTENT_TYPE $content_type; add_header X-Cache $upstream_cache_status; } ...... ............ }