Fastdfs安裝_nginx進行圖片動態壓縮

說明

1.由於上傳的圖片較大,部分頁面直接引用圖片地址,則形成頁面加載緩慢問題。
2.考慮到服務器空間問題,咱們沒有進行上傳縮略圖。僅僅是上傳了原圖
3.爲了優化頁面加載圖片的時間問題,因此對圖片進行動態縮放。html

PS:若是訪問量較高,建議進行存儲縮略圖nginx

圖片縮放採用nginx的 http_image_filter_module 詳細見:http://nginx.org/en/docs/http/ngx_http_image_filter_module.htmlgit

安裝準備

  • 圖片縮放依賴於 gdlib

下載地址: https://libgd.github.io/ https://github.com/libgd/libgd/releases/download/gd-2.2.4/libgd-2.2.4.tar.gz
下載後,進入目錄,依次執行github

./configure
sudo make 
sudo make install

安裝nginx module

1.編譯

由於nginx 自帶該 module,只須要編譯nginx啓用便可web

./configure --prefix=/usr/local/nginx --with-http_stub_status_module  --with-pcre=/soft/pcre-8.35  --add-module=/soft/fastdfs-nginx-module-master/src --with-http_image_filter_module

sudo make ;
sudo make install;

2.修改配置文件

修改 nginx.conf文件服務器

  • 說明:image_filter 的resize 中,支持 - 變量。
  • 原文提示「proportionally reduces an image to the specified sizes. To reduce by only one dimension, another dimension can be specified as 「-」. In case of an error, the server will return code 415 (Unsupported Media Type). Parameter values can contain variables. When used along with the rotate parameter, the rotation happens after reduction.」
location ~/group1/M00/(.*)\.(jpg|jpeg|gif|png) {
        root /home/administrator/fastdfs/data;
        ngx_fastdfs_module;
        set $w "-";
        if ($arg_w != "") {
                set $w $arg_w;
        } 
        image_filter resize $w $w;
        image_filter_buffer 2M;
}

完成

能夠訪問:http://192.168.31.95/group1/M00/00/00/wKgfX1k_RqiACmScAASQWK7MiFY632.jpg?w=200 便可看到效果啦網絡

可能會碰見的問題

  1. undefined reference to gdImageJpegPtr'或 undefined reference to gdImagePngPtr' 或者 undefined symbol: gdImageCreateFromJpegPtr

須要安裝jpeg的庫 。安裝完畢後,從新編譯nginx 。
下載地址:http://web.mit.edu/wwinnie/MacData/afs/athena/system/i386_deb50/os/usr/share/doc/libgd2-noxpm/README.htmlapp

  1. 若是提示「 gd_gd2.c:213:40: error: ‘INT_MAX’ undeclared (first use in this function) if (*ncx <= 0 || *ncy <= 0 || *ncx > INT_MAX / *ncy) {」

網絡上找到一個偏方(我不會c): 能夠修改文件 src/gd_gd2.c. , 添加 include <limits.h> 而後 sudo make優化

#include <math.h>
#include <limits.h>
#include <string.h>
相關文章
相關標籤/搜索