Separate location for files served by php-fpm

Palvelin Postmaster postmaster at palvelin.fi
Mon May 8 18:49:29 UTC 2023


Hi all!

I use php-fpm together with nginx.

My PHP app serves files which have hashed filenames and no filename extension from a specific subdirectory url, e.g /files/hash/31b4ba4a0dc6536201c25e92fe464f85

I would like to be able to set, for example, a separate ’expires’ value to these files with nginx (using a separate location block?). Is that achiavable?

server {
       listen 443 ssl http2;
       server_name my.site.com;
       root /var/www/vhosts/my.site.com/site/;
       set $ngspage /index.php?ngspage=$uri$is_args&$args;

       # PHP file processing configuration
       location ~ [^/]\.php(/|$) {
               set $location_name php;
		fastcgi_pass php74;
               include fastcgi_params;
               fastcgi_index index.php;

               # Regex to split $uri to $fastcgi_script_name and $fastcgi_path
               fastcgi_split_path_info ^(.+?\.php)(/.*)$;

               # Bypass the fact that try_files resets $fastcgi_path_info
               # see: http://trac.nginx.org/nginx/ticket/321
               set $path_info $fastcgi_path_info;

               # Check that the PHP script exists before passing it
               try_files $ngspage $fastcgi_script_name =404;
       }


More information about the nginx mailing list