前面研究了fastdfs的安裝部署,而且作了多機同步。php
此次咱們解決下FastDFS作文件服務器並處理縮略圖的問題。html
有兩個方案,方案1,在上傳過程當中生成多張圖片,服務器存備。方案2,只上傳一張圖片,在下載時候進行調整。咱們這裏採用方案2。nginx
yum -y install gd-deve
出錯了,怎麼辦。vim
查找參數來列出gd-deve相關的包名:瀏覽器
yum search gd-devel
yum -y install gd-devel.x86_64
安裝成功服務器
一、 cd nginx-1.14.0分佈式
# nginx-1.14.0是咱們的nginx安裝包目錄post
二、./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/fastdfs-nginx-module/src --with-http_image_filter_module 測試
#只是比前面配置多加了個--with-http_image_filter_modulespa
三、 make && make install 從新安裝
vim /usr/local/nginx/conf/nginx.conf
結果
location ~ group1/M00/(.+)_([0-9]+)x([0-9]+)\.(jpg|gif|png) { alias /data0/fastdfs/storage/storage0/data; ngx_fastdfs_module; set $w $2; set $h $3; if ($w != "0") { rewrite group1/M00(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ group1/M00$1.$4 break; } if ($h != "0") { rewrite group1/M00(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ group1/M00$1.$4 break; } #根據給定的長寬生成縮略圖 image_filter resize $w $h; #原圖最大2M,要裁剪的圖片超過2M返回415錯誤,須要調節參數image_filter_buffer image_filter_buffer 2M; #try_files group1/M00$1.$4 $1.jpg; } location ~ group1/M00/(.+)\.?(.+){ alias /data0/fastdfs/storage/storage0/data; ngx_fastdfs_module; }
仍是用咱們以前的圖,雖然有點小
原圖
http://192.168.50.20/group1/M00/00/00/wKgyFFtm9mWAZfJhAAANHkI1RM4732.gif
縮略圖
http://192.168.50.20/group1/M00/00/00/wKgyFFtm9mWAZfJhAAANHkI1RM4732_80x50.gif
差異只是最後gif前加了個"_80x50"
GD是什麼?
一、GD庫是php平臺的一個關於圖像處理的擴展。
PHP經過GD擴展去操做圖片,是先在內存中處理,處理完之後以文件流的方式輸出,能夠輸出到瀏覽器,也能夠輸出到磁盤上。所以通常的步驟是:
咱們這裏不介紹太多,具體看園友的連接 GD庫簡介和使用
二、http_image_filter_module是什麼?
http_image_filter_module是nginx提供的集成圖片處理模塊,支持nginx-0.7.54之後的版,能夠用它實時縮放圖片,旋轉圖片,驗證圖片有效性以及獲取圖片寬高以及圖片類型信息 。
相關閱讀:
FastDFS 配置 Nginx 模塊,並實現分佈式同步-Linux
C# 使用FastDFS 文件服務