nginxを使用して画像サイズを動的に変換し、サムネイルを生成します。

nginxを使用して画像サイズを動的に変換し、サムネイルを生成します。

Nginx ngx_http_image_filter_module モジュール (nginx バージョン 0.7.54+) を使用すると、JPEG、GIF、PNG、WebP 形式の画像サイズを動的に変換できます。

このモジュールはデフォルトではビルドされないため、--with-http_image_filter_module 構成パラメータを使用して有効にする必要があります。

画像トラフィックが大きくない場合は、このモジュールを使用できます。

このモジュールは libgd ライブラリを使用します。 最新バージョンのライブラリを使用することをお勧めします。

nginx がすでにインストールされている場合にこのモジュールを追加する手順は次のとおりです。

1 インストールの依存関係

yum -y gd-develをインストールします
yum -y libxslt-devel をインストールします
yum -y インストール perl-devel perl-ExtUtils-Embed

2 元のnginxパラメータを表示する

​ nginx -V

出力は次のようになります。

​ nginx バージョン: nginx/1.12.2
引数を設定します:

--with-http_image_filter_module があるかどうかを確認します。ある場合は、インストールされていることを意味します。ない場合は、インストールを続行します。

3 コンパイル

再コンパイルする場合は、元のものと同じバージョンの nginx ソースコードをダウンロードして解凍する必要があります。

--with-http_image_filter_module=dynamic と元のパラメータを追加します (再インストールするために make install コマンドを実行する必要はありません)

./configure --with-http_image_filter_module=dynamic
作る

4 元のnginxをバックアップする

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

5 nginxをカバーする

cp objs/nginx /usr/local/nginx/sbin/
mkdir /usr/local/nginx/module
objs/ngx_http_image_filter_module.so を /usr/local/nginx/module/ngx_http_image_filter_module.so にコピーします。

6 設定ファイルを変更する

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

モジュールをロードします /usr/local/nginx/module/ngx_http_image_filter_module.so;
場所 ~* /images/(.+)_(\d+)x(\d+)\.(jpg|jpeg|gif|png)$ {
        $w $2 を設定します。
        $h $3 を設定します。
        image_filter のサイズを $w $h に変更します。
        image_filter_buffer 30M; #画像バッファの最大サイズを設定します。サイズが設定値を超えると、サーバーはエラー415を返します。
        image_filter_interlace をオン;
        画像フィルター jpeg 品質 80;
        try_files /$1.$4 /notfound.jpg;
        有効期限は1日です。
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Credentials' 'true';
        alias /home/publisherupload/ ; #root は、/images/ パスにアクセスするときに /User/XX/Desktop/images にアクセスできるようにします。root を alias に置き換えると、/User/XX/Desktop/ にアクセスします。/User/XX/Desktop/ は、ローカル マシン上の絶対パスです。
    }

場所 /画像 {
  alias /home/publisherupload/ ; #root は、/images/ パスにアクセスするときに /User/XX/Desktop/images にアクセスできるようにします。root を alias に置き換えると、/User/XX/Desktop/ にアクセスします。/User/XX/Desktop/ は、ローカル マシン上の絶対パスです。
  autoindex on; #ディレクトリ参照機能を開く}

7 nginx設定を再読み込みする

nginx の sbin ディレクトリに nginx の sbin ディレクトリを作成します。

8 テスト

最終的な画像アクセスアドレスは、元の画像アドレスの後に_width x heightパラメータを追加します。

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

参照する

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

nginx を使用して画像サイズを動的に変換し、サムネイルを生成する方法についてはこれで終わりです。nginx による画像サイズの動的変換の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Nginx + consul + upsync を使用して動的負荷分散を実現する方法の詳細な説明
  • Nginxにモジュールを動的に追加する方法
  • nginx ip ブラックリストの動的禁止の例
  • Nginx キャッシュ ファイルと動的ファイルの自動バランス設定スクリプト
  • Nginx ダイナミック DNS リバース プロキシの書き方をいくつか詳しく説明します
  • Nginxはインストールされたnginxに動的にモジュールを追加します
  • nginx にアクセスホワイトリストを動的に追加する方法
  • PHP と Nginx で動的な画像切り抜きソリューションを実現

<<:  主キーを追加または変更するMySQL SQL文操作

>>:  Vueのフロントエンドシステムとフロントエンドとバックエンドの分離の詳細な説明

推薦する

Docker を使用した Hadoop クラスターのデプロイに関する詳細なチュートリアル

最近、社内に Hadoop テスト クラスターを構築したいので、docker を使用して Hadoo...

2012年のベストWebデザイン作品レビュー[パート1]

新年の初めに、友人の健康と2013年が素晴らしい年となることを心からお祈りいたします。この記事では、...

CSS 兄弟要素フローティング分析の概要

float:左/右/なし; 1. 同じレベルフローティング(1)ブロックレベル要素を同じ行に表示する...

UDP 接続オブジェクトの原理分析と使用例

以前、UDP を使い始めるために簡単な UDP サーバーとクライアントの例を作成しましたが、実際に使...

テーブル編集操作を実現する js+Html

この記事では、テーブルの編集操作を実現するためのjs+Htmlの具体的なコードを参考までに共有します...

Linux の操作とメンテナンスの基本 httpd 静的 Web ページ チュートリアル

目次1. ウェアハウスを使用してhttpd lrzsz解凍ファイルを作成する2. ソースコードファイ...

JavaScript関数導入の詳しい説明

目次機能紹介関数関数の作成コンストラクタは関数を作成する関数宣言は関数を作成する関数式関数を作成する...

Vue シングルファイルコンポーネントの実装

最近、vue について読みました。これまで基本的に見落としていた単一ファイル コンポーネントを見つけ...

vue で h5 側のアプリを開きます (Android か Apple かを判断します)

1. 開発環境 vue+vant 2. コンピュータシステム Windows 10 Profess...

dockerコンテナがIP経由でホストマシンにアクセスできない問題を解決する方法の詳細な説明

問題の起源docker を使用する場合、残念ながら docker コンテナ内のホストのポート 80 ...

HTML のスクロールバーについて/スクロールバーの削除

1. xhtmlの下のスクロールバーの色元の HTML では、ページ全体のスクロール バーを次のよう...

CSSフィルターにはどんな魔法の用途があるか

背景基本概念CSS filterプロパティは、ぼかしや色の変化などのグラフィック効果を要素に適用して...