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; }
最后開啟nginx,這樣訪問/simg/目錄下的圖片,都會按照高度最高100並且寬度最高100按照原圖比例進行截取出來,並輸出給瀏覽器。當然也可以開啟重寫去讀取本機另一個目錄下源文件;如果不在一台機器上就可以開啟proxy_pass,並加上重寫即可。
http_image_filter_module支持5種指令:
image_filter:測試圖片文件合法性(image_filter test);3個角度旋轉圖片(image_filter rotate 90 | 180 | 270);以json格式輸出圖片寬度、高度、類型(image_filter size);最小邊縮小圖片保持圖片完整性(resize width height);以及最大邊縮放圖片后截取多余的部分(image_filter crop [width] [height]);
image_filter_jpeg_quality:設置jpeg圖片的壓縮質量比例(官方最高建議設置到95,但平時75就可以了);
image_filter_buffer:限制圖片最大讀取大小,默認為1M;
image_filter_transparency:用來禁用gif和palette-based的png圖片的透明度,以此來提高圖片質量。
image_filter_sharpen:這個指令在nginx-1.1.8和1.0.11版本后增加的,目前還不知道是干啥用,有知道的朋友或者發現文中有什么錯誤的朋友請留言給我吧^^