Skip to content

Instantly share code, notes, and snippets.

@phpdude
Last active February 28, 2024 04:36
Show Gist options
  • Save phpdude/1451684 to your computer and use it in GitHub Desktop.
Save phpdude/1451684 to your computer and use it in GitHub Desktop.
Nginx image filter + caching of results.
Nginx image filter + caching of results.
Supports dynamic thumbnails images sizes processing + caching results, simple to use.
Awesome!!!
location /resize {
alias /tmp/nginx/resize;
set $width 150;
set $height 100;
set $dimens "";
if ($uri ~* "^/resize_(\d+)x(\d+)/(.*)" ) {
set $width $1;
set $height $2;
set $image_path $3;
set $dimens "_$1x$2";
}
if ($uri ~* "^/resize/(.*)" ) {
set $image_path $1;
}
set $image_uri image_resize/$image_path?width=$width&height=$height;
if (!-f $request_filename) {
proxy_pass http://127.0.0.1:8080/$image_uri;
break;
}
proxy_store /tmp/nginx/resize$dimens/$image_path;
proxy_store_access user:rw group:rw all:r;
proxy_temp_path /tmp/images;
proxy_set_header Host $host;
}
location /image_resize {
alias /path/to/media/;
image_filter resize $arg_width $arg_height;
image_filter_jpeg_quality 75;
allow 127.0.0.0/8;
deny all;
}
@bienkma
Copy link

bienkma commented Jan 12, 2018

Howto remove ratio when i using image_filter resize w_size h_size? I think sometimes it must specific exactly width and hieght of picture.

@cadavre
Copy link

cadavre commented Feb 18, 2020

There is a typo since version 1. :)

set $dimens "";
      ^

set $demins "$1x$2";
      ^

proxy_store /var/www/pics/$demins/$image_path;
                            ^

Should be $dimens everywhere I believe.

@phpdude
Copy link
Author

phpdude commented Feb 18, 2020

oh, lol! @cadavre thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment