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

首頁 > 網站 > Nginx > 正文

使用Nginx中自帶的模塊配置縮略圖功能的教程

2024-08-30 12:28:09
字體:
來源:轉載
供稿:網友

http_image_filter_module是nginx提供的集成圖片處理模塊,支持nginx-0.7.54以后的版本,在網站訪問量不是很高磁盤有限不想生成多余的圖片文件的前提下可,就可以用它實時縮放圖片,旋轉圖片,驗證圖片有效性以及獲取圖片寬高以及圖片類型信息,由于是即時計算的結果,所以網站訪問量大的話,不建議使用。
安裝
安裝還是很簡單的,默認HttpImageFilterModule模塊是不會編譯進nginx的,所以要在configure時候指定

./configure arguments: --prefix=/usr/local/nginx --with-http_image_filter_module

PS: HttpImageFilterModule模塊需要依賴gd-devel的支持,可以使用yum或apt-get方便地安裝,如果未安裝回報“/configure: error: the HTTP image filter module requires the GD library.”錯誤

yum install gd-devel
apt-get install libgd2-xpm libgd2-xpm-dev

make&&make install后就可以進行配置了,做最簡單的配置,先讓模塊可以跑起來^^

location ~ /simg/.*/.jpg$ {  #proxy_pass   http://10.11.11.11;  #rewrite "/simg/(.*/.jpg)$" /img/$1 break ;  image_filter  resize 100 100;  error_page   415  = /empty;}

 該模塊主要有兩個指令:
指令1:
語法: image_filter (test | size | resize width height | crop width height)
默認是: 無
可出現的上下文: location
該指令指定圖像的轉化形式:
(1)test - 測試回復是否是JPEG、GIF、或PNG圖片(不支持BMP等其他格式),出錯時返回415。
(2)size - 返回圖片的JSON數據,比如:( "Img": ( "width": 100, "height": 100, "type": "gif"))
(3)resize - 根據設置按比例得減小圖像,比如100*100的圖片,而設置是50*25,減小后的圖片為25*25。如果你只想設置一個維度,可以用“-”代替。出錯時返回415。
(4)crop - 根據設置按比例得減小圖像,然后裁剪成跟設置一樣大小的圖片。比如100*100的圖片,而設置是50*25,減小后的圖片為50*50,Nginx會選取中間高度25的像素,形成50*25的圖片,所以圖片會有缺失。如果你只想設置一個維度,可以用“-”代替。出錯時返回415。
指令2:
語法: image_filter_buffer size
默認值: image_filter_buffer 1M
可出現的位置: http, server, location
該指令設置單圖片緩存的最大值,如果過濾的圖片大小超過緩存大小,會報錯返回415。

用法
現在開始是重點:
有了如上認識再配合locaiont、if、image_filter 就可以讓nginx動態生成縮略圖了。
假設你的圖片位于/img目錄下
訪問縮略圖方式

http://www.xxx.cn/img/9GUMJR7200AJ0003_90x90.jpg

訪問原圖方式

http://www.xxx.cn/img/9GUMJR7200AJ0003_90x0.jpghttp://www.xxx.cn/img/9GUMJR7200AJ0003_0x50.jpghttp://www.xxx.cn/img/9GUMJR7200AJ0003_0x0.jpghttp://www.xxx.cn/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 {          }    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 {          }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长沙县| 房产| 南城县| 奉贤区| 日土县| 苏州市| 海阳市| 长治市| 凤庆县| 红安县| 蓝山县| 新平| 太谷县| 常山县| 鹿泉市| 甘泉县| 会泽县| 肥东县| 依安县| 莫力| 上思县| 汉源县| 抚州市| 滨州市| 克拉玛依市| 蓝田县| 宣化县| 当涂县| 宜州市| 旬邑县| 陆川县| 柳州市| 谢通门县| 华阴市| 茌平县| 临洮县| 汶上县| 新闻| 南通市| 红安县| 大田县|