第一步:libfastcommon安装
FastDFS_v5.05依赖libfastcommon,不再依赖libevent
unzip libfastcommon-master.zip -d /usr/localcd /usr/local/libfastcommon-master
./make.sh
./make.sh install
libfastcommon.so默认安装到了/usr/lib64/libfastcommon.so,而FastDFS主程序设置的lib目录是/usr/local/lib,所以设置软连接
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
第二步:FastDFS安装
1)tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local
cd /usr/local/FastDFS
./make.sh
./make.sh install
cd /etc/fdfs
2) FastDFS安装完毕后,修改tracker.conf、storage.conf、client.conf配置文件。将/etc/fdfs 下的3个配置文件的名字去掉sample。
在/usr/local 目录下创建目录:
mkdir /home/fastdfs/tracker
mkdir /home/fastdfs/storage
mkdir /home/fastdfs/data
mkdir /home/fastdfs/client
mkdir /home/fastdfs/mod
首先修改tracker.conf配置文件
base_path=/home/fastdfs/tracker #用于存放日志。
其次修改storage.conff配置文件
base_path=/home/fastdfs/storage #用于存放日志。
store_path0=/home/fastdfs/data #存放数据,若不设置默认为前面那个。
tracker_server=192.168.0.230:22122 #指定tracker服务器地址。
最后修改client.conff配置文件
base_path=/home/fastdfs/client #用于存放日志。
tracker_server=192.168.0.230:22122 #指定tracker服务器地址。
3) 启动tracker、storage
fdfs_trackerd /etc/fdfs/tracker.conf
fdfs_storaged etc/fdfs/storage.conf
4) 检查进程
ps -ef |grep fdfs
5) 上传/删除 测试
使用自带的fdfs_test来测试,使用格式如下:
fdfs_test /etc/fdfs/client.conf upload /home/01.jpg
成功
group_name=group1, ip_addr=192.168.29.132, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580.jpg
...
example file url: http://192.168.29.132/group1/M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580.jpg
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580_big.jpg
...
example file url: http://192.168.29.132/group1/M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580_big.jpg
使用fdfs_delete_file来删除文件,格式如下:
fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgdhFTV11uAXgKWAPk-Io7D4w8667.jpg
可以看到,上传ok了,这里会生成两个文件,这是fastdfs的主/从文件特性,以后再介绍。example file url是不能在浏览器中直接打开的,除非配合nginx使用,这里我不需要了。删除文件需要完整的group_name和
第三步:在所有storage节点安装fastdfs-nginx-module
fastdfs-nginx-module 作用说明
FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储,但是同组存储服务器之间需要进入 文件复制,有同步延迟的问题。假设 Tracker 服务器将文件上传到了 ip01,上传成功后文件 ID 已经返回给客户端。此时 FastDFS 存储集群机制会将这个文件同步到同组存储 ip02,在文件还 没有复制完成的情况下,客户端如果用这个文件 ID 在 ip02 上取文件,就会出现文件无法访问的 错误。而 fastdfs-nginx-module 可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的 文件无法访问错误。(解压后的 fastdfs-nginx-module 在 nginx 安装时使用)
1)解压 fastdfs-nginx-module_v1.16.tar.gz
2)修改 fastdfs-nginx-module 的 config 配置文件
cd 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/"
3)复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录,并修改
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
vi /etc/fdfs/mod_fastdfs.conf
4)修改/etc/fdfs/mod_fastdfs.conf文件
connect_timeout=10
base_path=/home/fastdfs/mod
tracker_server=192.168.0.230:22122
storage_server_port=23000
group_name=group1
url_have_group_name = true
store_path0=/home/fastdfs/data
5) 复制 FastDFS 的部分配置文件到/etc/fdfs 目录
cd /usr/local/src/FastDFS/conf
cp http.conf mime.types /etc/fdfs/
第四步:编译安装nginx 需要文件:1). openssl-1.0.2k 2). pcre-8.40 3). zlib-1.2.11
./configure --prefix=/usr/local/nginx-1.10.1 --add-module=/usr/local/src/fastdfs-nginx-module/src--with-zlib=/usr/local/zlib-1.2.8/ --with-pcre=/usr/local/pcre-8.40/ --with-openssl=/usr/local/openssl-1.0.2k/ --with-mail --with-mail_ssl_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_realip_module --with-http_ssl_module
第五步:配置nginx
user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8888;
server_name localhost;
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
A、8888 端口值是要与/etc/fdfs/storage.conf 中的 http.server_port=8888 相对应, 因为 http.server_port 默认为 8888,如果想改成 80,则要对应修改过来。
B、Storage 对应有多个 group 的情况下,访问路径带 group 名,如/group1/M00/00/00/xxx, 对应的 Nginx 配置为:
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
C、如查下载时如发现老报 404,将 nginx.conf 第一行 user nobody 修改为 user root 后重新启动。
第六步:启动nginx
在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录
ln -s /home/fastdfs/storage/data/ /home/fastdfs/storage/data/M00