国产探花免费观看_亚洲丰满少妇自慰呻吟_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 {          }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邓州市| 哈尔滨市| 汨罗市| 泗阳县| 周至县| 葵青区| 运城市| 南岸区| 通辽市| 潮州市| 巴中市| 抚远县| 临沭县| 仙桃市| 北碚区| 连城县| 平定县| 渭南市| 弋阳县| 大冶市| 土默特右旗| 甘孜县| 九台市| 延长县| 澄江县| 股票| 渭源县| 嵊泗县| 民勤县| 桦南县| 连云港市| 巴林左旗| 岳阳县| 方山县| 清河县| 内江市| 丰镇市| 广平县| 永德县| 平江县| 苍山县|