一.下载源码文件
https://github.com/happyfish100/libfastcommon/archive/master.zip
https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip
https://github.com/happyfish100/fastdfs/archive/master.zip
http://nginx.org/download/nginx-1.8.1.tar.gz
二.编译安装运行
1) 进入 libfastcommon-master文件
./make.sh
./make.sh install
2) 进入 fastdfs-master
./make.sh
./make.sh install
3) 修改配置 (/etc/fdfs/)
1.tracker.conf.sample => tracker.conf 2.storage.conf.sample => storage.conf 同时修改相应参数
fdfs_trackerd /etc/fdfs/tracker.conf start
fdfs_storaged /etc/fdfs/storage.conf start
三.编译配置 nginx
1) 编译安装前准备
1) yum install -y openssl openssl-devel
2) yum install -y zlib zlib-devel
3) yum install -y pcre pcre-devel
4) yum install -y gd-devel
2) 编译安装nginx
进入 nginx1.8.1 编译安装
./configure --prefix=/opt/nginx-1.8.1 --add-module=/home/fastdfs-nginx-module-master/src --with-http_image_filter_module --without-http_gzip_module
make
make install
3) 修改nginx配置
复制 /home/fastdfs-nginx-module-master/src/mod_fastdfs.conf 到 /etc/fdfs/ 并修改到对应配置
复制 /home/fastdfs-master/conf/下的 http.conf mime.types 到 /etc/fdfs/
用nginx让fastdfs支持http访问并支持 动态改变图片大小(非正则取参数方式)
示例: http://domain/M00/00/00/wKgfyFi_rzaAFTPiAAARg2PJhBU776.jpg?w=20&h=20
四.参考配置
1) tracker.conf
disabled=false #启用配置文件
port=22122 #设置 tracker 的端口号
base_path=/fastdfs/tracker #设置 tracker 的数据文件和日志目录(需预先创建)
http.server_port=80 #设置 http 端口号
2) storage.conf
disabled=false #启用配置文件
group_name=group1 #组名,根据实际情况修改
port=23000 #设置 storage 的端口号
base_path=/fastdfs/storage #设置 storage 的日志目录(需预先创建)
store_path_count=1 #存储路径个数,需要和下边 store_path 个数匹配
store_path0=/fastdfs/storage/file #存储路径
tracker_server=192.168.31.222:22122 #tracker 服务器的 IP 地址和端口号
http.server_port=80 #设置storage上启动的http服务的端口号
3) mod_fastdfs.conf
tracker_server=192.168.31.222:22122
group_name=group1
url_have_group_name = false
store_path_count=1 #同storage.conf配置
store_path0=/fastdfs/storage/file #同storage.conf配置
4) http.conf
#配置一(不支持原图显示)
#group1/ mod_fastdfs.conf url_have_group_name=false
location ~ M00/(.+)\.(jpg|gif|png|jpeg)$ {
root /fastdfs/storage/file;
ngx_fastdfs_module;
if ($arg_w = "") { set $arg_w -; }
if ($arg_h = "") { set $arg_h -; }
if ($arg_q = "") { set $arg_q 95; }
if ($arg_s = "") { set $arg_s 0; }
image_filter_sharpen $arg_s;
image_filter_jpeg_quality $arg_q;
image_filter resize $arg_w $arg_h;
image_filter_buffer 10M;
}
# 非jpg gif png
location ~ M00/(.+)\..+(?<!jpg|png|jpeg)$ {
root /fastdfs/storage/file;
ngx_fastdfs_module;
}
#配置二(支持原图显示)
location /image/ {
alias /fastdfs/storage/file/data/;
}
location ~ M00/(.+)\.(jpg|gif|png|jpeg)$ {
root /fastdfs/storage/file;
ngx_fastdfs_module;
set $flag 0;
if ($arg_w = "") {
set $flag "1$flag";
}
if ($arg_h = "") {
set $flag "2$flag";
}
if ($flag != "0") {
rewrite /M00/(.+).(jpg|gif|png|jpeg)$ /image/$1.$2 last;
}
image_filter resize $arg_h $arg_w ;
image_filter_buffer 10M;
}
# 非jpg gif png
location ~ M00/(.+)\..+(?<!jpg|png|jpeg)$ {
root /fastdfs/storage/file;
ngx_fastdfs_module;
}