前置條件
需要先完成對FastDFS的搭建以及對fastdfs-nginx-module安裝
參考鏈接: Linux下FastDFS環境搭建.
環境介紹
服務器: 阿里雲Centos7.4
FastDFS版本: fastdfs-5.11
Lua: lua-5.3.1
GraphicsMagick: GraphicsMagick-1.3.18
所需安裝包:
鏈接: https://pan.baidu.com/s/1jZTFuNP6jB–QZrNrGAOvQ 提取碼: ezr3
搭建過程
1.上傳安裝包
把下載好的安裝包上傳至/usr/local
目錄下
2.安裝相關依賴
安裝需要的基礎依賴
yum install -y gcc gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel gd-devel
yum install -y libpng libjpeg libpng-devel libjpeg-devel ghostscript libtiff libtiff-devel freetype freetype-devel readline-devel ncurses-devel
安裝LuaJIT
cd /usr/local/src/LuaJIT-2.0.4
make && make install
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.0
ln -s /usr/local/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2
安裝lua
cd /usr/local/src/lua-5.3.1
make linux && make install
安裝GraphicsMagick
cd /usr/local/src/GraphicsMagick-1.3.18
./configure --prefix=/usr/local/GraphicsMagick-1.3.18 --enable-shared
make && make install
ln -s /usr/local/GraphicsMagick-1.3.18 /usr/local/GraphicsMagick
安裝nginx插件(先停止nginx)
./configure --prefix=/usr/local/nginx --add-module=/root/fastdfs/fastdfs-nginx-module-1.20/src --add-module=/usr/local/src/lua-nginx-module-0.10.9rc7 --add-module=/usr/local/src/ngx_devel_kit
#編譯
make && make install
#查看模塊是否安裝上
/usr/local/nginx/sbin/nginx -V
從github上下載lua腳本nginx-lua-fastdfs-GraphicsMagick
git clone https://github.com/hpxl/nginx-lua-fastdfs-GraphicsMagick.git
cd nginx-lua-fastdfs-GraphicsMagick/lua
cp ./* /usr/local/nginx/conf/lua
3.修改相關信息
修改腳本中的tracker ip信息和gm的命令變量
vim /usr/local/nginx/conf/lua/fastdfs.lua
#在46行
fdfs:set_tracker("你的ip", 22122)
#在72行
local command = "/usr/local/GraphicsMagick/bin/gm convert " .. originalFile .. " -thumbnail " .. area .. " -background gray -gravity center -extent " .. area .. " " .. ngx.var.file;
修改nginx配置文件nginx.conf
server {
listen 8886;
server_name ip;
# LUA
location /hello {
default_type 'text/plain';
content_by_lua 'ngx.say("hello,lua")';
}
# fastdfs 縮略圖生成
location /group1/M00 {
alias /home/fastdfs/data;
set $image_root "/home/fastdfs/data";
if ($uri ~ "/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/(.*)") {
set $image_dir "$image_root/$3/$4/";
set $image_name "$5";
set $file "$image_dir$image_name";
}
if (!-f $file) {
# # 關閉lua代碼緩存,方便調試lua腳本
#lua_code_cache off;
content_by_lua_file "/usr/local/nginx/conf/lua/fastdfs.lua";
}
ngx_fastdfs_module;
}
}
修改圖片目錄賦予網站用戶寫的權限
chmod -R 777 /home/fastdfs/data/
4.效果測試
http://ip:8886/group1/M00/00/00/rBB66179QKiAfrqFAAF6QUov5G4694.jpg
http://ip:8886/group1/M00/00/00/rBB66179QKiAfrqFAAF6QUov5G4694.jpg_40x40.jpg