0 问题
之前使用最新版本下载,发现安装nginx编译fastdfs-nginx-module时候,make失败;所以换成网上写的版本匹配:
第一组匹配
FastDFS_v5.05.tar.gz
fastdfs-nginx-module_v1.16.tar.gz
libfastcommon-1.0.7.tar.gz
linux版本 Linux version 2.6.32-431.el6
redhat版本 CentOS release 6.5 (Final)
第二组匹配
Linux version 3.10.0-514.el7.x86_64
fastdfs-5.11.tar.gz
libfastcommon-1.0.39.tar.gz
组件版本列表
https://github.com/happyfish100/fastdfs/releases
https://github.com/happyfish100/libfastcommon/releases
FastDFS - Browse /FastDFS Nginx Module Source Code at SourceForge.net
1 安装依赖包
yum install -y libevent
2 下载(依赖3个组件)
fastdfs 文件存储系统主文件(DFS => distribute file system)
libfastcommon c语言的通用函数库
fastdfs-nginx-module nginx的模块
wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
fastdfs-nginx-module是从sourceforge.net直接下载下来,rz上传到linux服务器上的
3 安装libfastcommon
解压
tar -zxvf libfastcommon_V1.0.39.tar.gz
进入解压目录
cd libfastcommon-1.0.39/
编译
./make.sh
安装
./make.sh install
设置软连接
由于libfastcommon.so 安装到了/usr/lib64/libfastcommon.so,但是FastDFS主程序设置的lib目录是/usr/local/lib,所以需要创建软链接(linux可能说软连接已经存在了,可以先不管)
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
4 安装fastdfs
tar -zxvf fastdfs_V5.11.tar.gz
./make.sh
./make.sh install
/usr/bin 存放有编译出来的文件
/etc/fdfs 存放有配置文件
5 部署tracker
进入/etc/fdfs修改tracker配置,从示例中拷贝一份
cp tracker.conf.sample tracker.conf
vim tracker.conf
修改指定日志和数据文件的位置
base_path=/opt/fastdfs/tracker/data-and-log/
启动tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
重启tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
查看tracker进程
ps aux|grep tracker
6 部署storage
cp storage.conf.sample storage.conf
进入/etc/fdfs,从storage.conf.sample拷贝一份storage.conf
vim storage.conf
主要修改3处类容:
tracker的地址,注意不能是127.0.0.1
storage的文件存储空间
启动storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
7 监视器查看存储挂载点是否正常
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
可以看到storage的挂载点
8 上传测试文件(使用测试工具fdfs_test)
修改配置文件
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vim client.conf
主要修改以下两处:
# 数据和日志路径
base_path=/opt/fastdfs/client/data-and-log
# tracker地址
tracker_server=10.192.3.4:22122
上传一个图片timg.jpg到linux的test-upload-file文件夹下
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /opt/fastdfs/data/test-upload-file/timg.jpg
返回一个文件访问地址
example file url: http://10.129.3.4/group1/M00/00/00/CoEDBFznr5OAVD7-AARCsQuQZvw582.jpg
9 安装fastdfs-nginx-module(才能下载图片)
tar zxvf fastdfs-nginx-module_v1.16.tar.gz
进入解压目录:fastdfs-nginx-module/src,修改配置文件
vim config
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
改为如下:
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
因为local目录根本不存在
进入ng的解压目录,重新运行ng配置,增加插件配置
./configure --add-module=/opt/fastdfs/fastdfs-nginx-module/src
编译
make
编译安装
make install
将fastdfs-nginx-module解压文件中的配置文件,拷贝到/etc/fdfs下
cp /xxxx/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
vim mod_fastdfs.conf
修改配置文件
# (1)创建目录:mkdir -p /opt/fastdfs/fastdfs-nginx-module/data-and-log
base_path=/opt/fastdfs/fastdfs-nginx-module/data-and-log
# (2)指定 tracker 服务器的 IP 和端口
tracker_server=192.168.1.114:22122
# (3)因为我们访问图片的地址是:http://10.129.3.4/group1/M00/00/00/CoEDBFznr5OAVD7-AARCsQuQZvw582.jpg
# 该地址前面是带有 /group1/M00,所以我们这里要使用 true,不然访问不到(原值是 false)
url_have_group_name = true
# (4)图片实际存放路径,如果有多个,这里可以有多行:
store_path0=/opt/fastdfs/storage/images-data
设置nginx.conf配置文件,拦截/group1/M00
user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
# 访问本机
server_name 10.129.3.4;
# 拦截包含 /group1/M00 请求,使用 fastdfs 这个 Nginx 模块进行转发
location /group1/M00 {
ngx_fastdfs_module;
}
}
}
关闭风火墙
service iptables stop
启动linux
cd /usr/local/nginx/sbin
./nginx -c /xxxxx/nginx.conf
浏览器上输入:http://10.129.3.4/group1/M00/00/00/CoEDBFznr5OAVD7-AARCsQuQZvw582.jpg