国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

在Nginx中配置image filter模塊來實現動態生成縮略圖

2024-08-30 12:27:52
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了在Nginx中配置image filter模塊來實現動態生成縮略圖的方法,包括縮略圖尺寸的設置等方面的介紹,需要的朋友可以參考下
 

先來看一下什么是nginx的image filter模塊。

HttpImageFilterModule用來裁剪過大的圖片到指定大小,是nginx自帶模塊,默認不會開啟
開啟HttpImageFilterModule需要在編譯要帶上參數 --with-http_image_filter_module

該模塊主要有兩個指令:
語法: image_filter (test | size | resize width height | crop width height)
默認是: 無
可出現的上下文: location

該指令指定圖像的轉化形式:

test - 測試回復是否是JPEG、GIF、或PNG圖片(不支持BMP等其他格式),出錯時返回415。
size - 返回圖片的JSON數據,比如:( "Img": ( "width": 100, "height": 100, "type": "gif"))
resize - 根據設置按比例得減小圖像,比如100*100的圖片,而設置是50*25,減小后的圖片為25*25。如果你只想設置一個維度,可以用“-”代替。出錯時返回415。
crop - 根據設置按比例得減小圖像,然后裁剪成跟設置一樣大小的圖片。比如100*100的圖片,而設置是50*25,減小后的圖片為50*50,Nginx會選取中間高度25的像素,形成50*25的圖片,所以圖片會有缺失。如果你只想設置一個維度,可以用“-”代替。出錯時返回415。

語法: image_filter_buffer size
默認值: image_filter_buffer 1M
可出現的位置: http, server, location

該指令設置單圖片緩存的最大值,如果過濾的圖片大小超過緩存大小,會報錯返回415。

現在開始時重點:

有了如上認識再配合locaiont、if、image_filter 就可以讓nginx動態生成縮略圖了。

假設你的圖片位于/img目錄下

訪問縮略圖方式
http://www.survivalescaperooms.com/img/9GUMJR7200AJ0003_90x90.jpg
訪問原圖方式
http://www.survivalescaperooms.com/img/9GUMJR7200AJ0003_90x0.jpg
http://www.survivalescaperooms.com/img/9GUMJR7200AJ0003_0x50.jpg
http://www.survivalescaperooms.com/img/9GUMJR7200AJ0003_0x0.jpg
http://www.survivalescaperooms.com/img/9GUMJR7200AJ0003.jpg

添加如下配置到server上下文即可

    location ~* /img/(.+)_(d+)x(d+).(jpg|gif|png)$ {            set $h $2;      set $w $3;      if ($h = "0") {        rewrite /img/(.+)_(d+)x(d+).(jpg|gif|png)$ /img/$1.$4 last;      }      if ($w = "0") {        rewrite /img/(.+)_(d+)x(d+).(jpg|gif|png)$ /img/$1.$4 last;      }      #根據給定的長寬生成縮略圖      image_filter resize $h $w;      #原圖最大2M,要裁剪的圖片超過2M返回415錯誤,需要調節參數image_filter_buffer       image_filter_buffer 2M;                         #error_page 415       /img/notfound.jpg;      try_files /img/$1.$4 /img/notfound.jpg;     }    location ~* /img {          }

生成縮略圖只是image_filter功能中的一個,它一共支持4種參數:
    test:返回是否真的是圖片 
    size:返回圖片長短尺寸 
    corp:截取圖片的一部分 
    resize:縮放圖片

location ~ ^/test/(.*)$ {      image_filter size;      root  /var/www/_xxx;      index index.html index.htm;    }

輸出信息類似:

{ "img" : { "width": 1024, "height": 537, "type": "jpeg" } }

是一個JSON,壓力測試了一下,還是很給力,500個并發,CPU占用在17%左右。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陇南市| 河曲县| 佛坪县| 昭苏县| 大余县| 淮滨县| 利津县| 宁乡县| 衡东县| 专栏| 前郭尔| 普兰店市| 阿坝县| 乌兰县| 卓尼县| 宜章县| 上杭县| 始兴县| 马边| 车险| 霍林郭勒市| 洛隆县| 静乐县| 元朗区| 永修县| 罗甸县| 大关县| 社旗县| 广平县| 张掖市| 西畴县| 安丘市| 昌吉市| 岫岩| 德江县| 巴彦淖尔市| 囊谦县| 开远市| 樟树市| 门源| 丁青县|