Use nginx to dynamically convert image sizes to generate thumbnails

Use nginx to dynamically convert image sizes to generate thumbnails

The Nginx ngx_http_image_filter_module module (nginx version 0.7.54+) can be used to dynamically convert image sizes in JPEG, GIF, PNG, and WebP formats.

This module is not built by default and needs to be enabled via the --with-http_image_filter_module configuration parameter.

If the image traffic is not large, you can use this module.

This module uses the libgd library. It is recommended to use the latest version of the library.

The following are the steps to add this module if nginx is already installed.

1 Installation Dependencies

yum -y install gd-devel
yum -y install libxslt-devel
yum -y install perl-devel perl-ExtUtils-Embed

2 View the original nginx parameters

​ nginx -V

The output is as follows:

​ nginx version: nginx/1.12.2
configure arguments:

Check whether there is --with-http_image_filter_module. If so, it means it has been installed. Otherwise, continue to install.

3 Compilation

When recompiling, you need to download the same version of nginx source code as the original one and decompress it.

Add --with-http_image_filter_module=dynamic and the original parameters (no need to execute the make install command to reinstall)

./configure --with-http_image_filter_module=dynamic
make

4 Back up the original nginx

cp -r /usr/local/nginx /usr/local/nginxbak

5 Covering nginx

cp objs/nginx /usr/local/nginx/sbin/
mkdir /usr/local/nginx/module
cp objs/ngx_http_image_filter_module.so /usr/local/nginx/module/ngx_http_image_filter_module.so

6 Modify the configuration file

vim /usr/local/nginx/conf/nginx.conf

load_module /usr/local/nginx/module/ngx_http_image_filter_module.so;
location ~* /images/(.+)_(\d+)x(\d+)\.(jpg|jpeg|gif|png)$ {
        set $w $2;
        set $h $3;
        image_filter resize $w $h;
        image_filter_buffer 30M; #Set the maximum size of the image buffer. If the size exceeds the set value, the server will return error 415
        image_filter_interlace on;
        image_filter_jpeg_quality 80;
        try_files /$1.$4 /notfound.jpg;
        expires 1d;
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Credentials' 'true';
        alias /home/publisherupload/ ; #root enables access to /User/XX/Desktop/images when accessing the /images/ path. If root is replaced with alias, /User/XX/Desktop/ is accessed; /User/XX/Desktop/ is the absolute path on the local machine.
    }

location /images {
  alias /home/publisherupload/ ; #root enables access to /User/XX/Desktop/images when accessing the /images/ path. If root is replaced with alias, /User/XX/Desktop/ is accessed; /User/XX/Desktop/ is the absolute path on the local machine.
  autoindex on; #Open directory browsing function}

7 Reload nginx configuration

/usr/local/nginx/sbin/nginx -s

8 Testing

The final image access address is to add the _width x height parameter after the original image address

http://110.87.103.58:12345/images/2021-01/202101250944272_500x400.png

refer to

https://cloud.tencent.com/developer/article/1644466

This is the end of this article about using nginx to dynamically convert image sizes to generate thumbnails. For more information about nginx dynamically converting image sizes, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Detailed explanation of how to use Nginx + consul + upsync to achieve dynamic load balancing
  • How to dynamically add modules to Nginx
  • Example of nginx ip blacklist dynamic ban
  • Nginx cache files and dynamic files automatic balancing configuration script
  • Detailed explanation of several ways to write Nginx dynamic DNS reverse proxy
  • Nginx dynamically adds modules to installed nginx
  • How to dynamically add access whitelist to nginx
  • PHP plus Nginx to achieve dynamic cropping picture solution

<<:  Introduction to CSS BEM Naming Standard (Recommended)

>>:  Mysql SQL statement operation to add or modify primary key

Recommend

Running PostgreSQL in Docker and recommending several connection tools

1 Introduction PostgreSQL is a free software obje...

HTML realizes hotel screening function through form

<!doctype html> <html xmlns="http:/...

A brief discussion on the implementation principle of Vue slot

Table of contents 1. Sample code 2. See the essen...

CSS float property diagram float property details

Using the CSS float property correctly can become...

How to recover accidentally deleted table data in MySQL (must read)

If there is a backup, it is very simple. You only...

Example code of layim integrating right-click menu in JavaScript

Table of contents 1. Effect Demonstration 2. Impl...

CSS style reset and clear (to make different browsers display the same effect)

In order to make the page display consistent betwe...

HTML optimization techniques you must know

To improve the performance of web pages, many dev...

What are the benefits of using // instead of http:// (adaptive https)

//Default protocol /The use of the default protoc...

Complete steps to install MySQL 5.5 on CentOS

Table of contents 1. Preparation before installat...

HTML dl, dt, dd tags to create a table vs. Table creation table

Not only does it reduce the cost of website develo...

Sequence implementation method based on MySQL

The team replaced the new frame. All new business...