摘要: Ubuntu 14.04下部署FastDFS 5.08+Nginx 1.13.0
环境 Ubuntu 14.04
用户 admin
数据目录: /fastdfs
安装包:FastDFS v5.05
1 2 3 4 5 6 7 libfastcommon-master.zip fastdfs-nginx-module_v1.16.tar.gz nginx-1.6.2.tar.gz fastdfs_client_java._v1.25.tar.gz 源码地址: https://github.com/happyfish100/ 下载地址: http://sourceforge.net/projects/fastdfs/files/ 官方论坛: http://bbs.chinaunix.net/forum-240-1.html
一、下载安装libfastcommon 1.1、上传或下载 libfastcommon-master.zip 到/usr/local/src 目录 1 2 3 4 git clone https://github.com/happyfish100/libfastcommon.git cd libfastcommon/ ./make.sh ./make.sh install
1.2、解压 1 2 3 # cd /usr/local/src/ # unzip libfastcommon-master.zip # cd libfastcommon-master
###1.3、编译、安装
1 2 3 4 5 # ./make.sh # ./make.sh install libfastcommon 默认安装到了 /usr/lib64/libfastcommon.so /usr/lib64/libfdfsclient.so
1.4、创建软链接. 1 2 3 4 # 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
二、安装 FastDFS 2.1、上传或下载 FastDFS 源码包( FastDFS_v5.05.tar.gz) 到 /usr/local/src 目录 2.2、解压 1 2 3 # cd /usr/local/src/ # tar -zxvf FastDFS_v5.05.tar.gz # cd FastDFS
2.3、编译、 安装(编译前要确保已经成功安装了 libfastcommon) 1 2 # ./make.sh # ./make.sh install
三、配置 FastDFS 跟踪器 3.1、复制 FastDFS 跟踪器样例配置文件,并重命名: 1 2 # cd /etc/fdfs/ # cp tracker.conf.sample tracker.conf
3.2、编辑跟踪器配置文件: 1 2 3 # vi /etc/fdfs/tracker.conf 修改的内容如下: base_path=/fastdfs/tracker
3.3、创建基础数据目录(参考基础目录 base_path 配置) : 1 # mkdir -p /fastdfs/tracker
3.4、启动 Tracker: 1 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
四、配置 FastDFS 存储 4.1、复制 FastDFS 存储器样例配置文件,并重命名
4.2、编辑存储器样例配置文件: 1 2 3 4 5 # vi /etc/fdfs/storage.conf 修改的内容如下: base_path=/fastdfs/storage store_path0=/fastdfs/storage tracker_server=192.168.241.140:22122
4.3、创建基础数据目录 1 mkdir -p /fastdfs/storage
4.4、启动 Storage: 1 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
4.5、检查进程
五、文件上传测试 5.1、修改 Tracker 服务器中的客户端配置文件: 1 2 3 4 cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf # vi /etc/fdfs/client.conf base_path=/fastdfs/tracker tracker_server=192.168.241.140:22122
5.2、执行如下文件上传命令 1 2 3 # /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/FastDFS_v5.05.tar.gz 返回 ID 号: group1/M00/00/00/wKgEfVUYNYeAb7XFAAVFOL7FJU4.tar.gz (能返回以上文件 ID, 说明文件上传成功)
六、在每个存储节点上安装 nginx 6.1、fastdfs-nginx-module 作用说明
FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储, 但是同组存储服务器之间需要进入 文件复制, 有同步延迟的问题。假设 Tracker 服务器将文件上传到了 192.168.4.125,上传成功后文件 ID 已经返回给客户端。此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.4.126,在文件还 没有复制完成的情况下,客户端如果用这个文件 ID 在 192.168.4.126 上取文件,就会出现文件无法访问的 错误。而 fastdfs-nginx-module 可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的 文件无法访问错误。( 解压后的 fastdfs-nginx-module 在 nginx 安装时使用)
6.2、上传 fastdfs-nginx-module_v1.16.tar.gz 到/usr/local/src 6.3、解压 1 2 # cd /usr/local/src/ # tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
6.4.修改 fastdfs-nginx-module 的 config 配置文件 1 2 3 4 5 6 # cd fastdfs-nginx-module/src # vi config CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/" 修改为: CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/" ( 注意: 这个路径修改是很重要的,不然在 nginx 编译的时候会报错的)
6.5、 上传当前的稳定版本 Nginx(nginx-1.13.0.tar.gz)到/usr/local/src 目录 6.6、 编译安装 Nginx(添加 fastdfs-nginx-module 模块) 1 2 3 4 5 # cd /usr/local/src/ # tar -zxvf nginx-1.6.2.tar.gz # cd nginx-1.6.2 # ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src # make && make install
如果出现 fastdfs-nginx-module/src/common.c:21:25: fatal error: fdfs_define.h: 没有那个文件或目录
添加链接
1 2 3 ln -sv /usr/include/fastcommon /usr/local/include/fastcommon ln -sv /usr/include/fastdfs /usr/local/include/fastdfs ln -sv /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
6.7、复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改 1 2 3 4 5 6 # cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/ # vi /etc/fdfs/mod_fastdfs.conf 修改以下配置: tracker_server=192.168.241.230:22122 url_have_group_name = true store_path0=/fastdfs/storage
6.8、复制 FastDFS 的部分配置文件到/etc/fdfs 目录 1 2 # cd /usr/local/src/FastDFS/conf # cp http.conf mime.types /etc/fdfs/
6.9、在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录 1 # ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
七、配置 Nginx 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 8888; server_name localhost; location ~/group([0-9])/M00 { #alias /fastdfs/storage/data; ngx_fastdfs_module; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
八、访问地址
http://192.168.241.140:8888/group1/M00/00/00/wKjxjFkr37KADaL9AAAawU0ID2Q831.png