参考自:https://yq.aliyun.com/articles/585175和https://www.cnblogs.com/chiangchou/p/fastdfs.html
我自己的环境和安装包,亲测可用
- 环境 Ubuntu 18.04.1 LTS
- fastdfs目录: /fastdfs
- 安装包:FastDFS v5.11,libfastcomon V1.0.39, Ngxin 1.14.0, fastdfs-nginx-module V1.20
文章原文:
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 目录
git clone https://github.com/happyfish100/libfastcommon.git
cd libfastcommon/
./make.sh
./make.sh install
1.2、解压
# cd /usr/local/src/
# unzip libfastcommon-master.zip
# cd libfastcommon-master
1.3、编译、安装
# ./make.sh
# ./make.sh install
libfastcommon 默认安装到了
/usr/lib64/libfastcommon.so
/usr/lib64/libfdfsclient.so
1.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、解压
# cd /usr/local/src/
# tar -zxvf FastDFS_v5.05.tar.gz
# cd FastDFS
2.3、编译、 安装(编译前要确保已经成功安装了 libfastcommon)
# ./make.sh
# ./make.sh install
三、配置 FastDFS 跟踪器
3.1、复制 FastDFS 跟踪器样例配置文件,并重命名:
# cd /etc/fdfs/
# cp tracker.conf.sample tracker.conf
3.2、编辑跟踪器配置文件:
# vi /etc/fdfs/tracker.conf
修改的内容如下:
base_path=/fastdfs/tracker
3.3、创建基础数据目录(参考基础目录 base_path 配置) :
# mkdir -p /fastdfs/tracker
3.4、启动 Tracker:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
四、配置 FastDFS 存储
4.1、复制 FastDFS 存储器样例配置文件,并重命名
cd /etc/fdfs/
4.2、编辑存储器样例配置文件:
# vi /etc/fdfs/storage.conf
修改的内容如下:
base_path=/fastdfs/storage
store_path0=/fastdfs/storage
tracker_server=192.168.241.140:22122
4.3、创建基础数据目录
mkdir -p /fastdfs/storage
4.4、启动 Storage:
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
4.5、检查进程
ps -ef |grep fdfs
五、文件上传测试
5.1、修改 Tracker 服务器中的客户端配置文件:
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、执行如下文件上传命令
# /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、解压
# cd /usr/local/src/
# tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
6.4.修改 fastdfs-nginx-module 的 config 配置文件
# 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 模块)
# cd /usr/local/src/
# tar -zxvf nginx-1.6.2.tar.gz
# cd nginx-1.6.2
# ./configure --add-module=/home/jnsl/git-repository/fastdfs-nginx-module/src --with-http_stub_status_module --with-http_ssl_module
# make && make install
如果出现 fastdfs-nginx-module/src/common.c:21:25: fatal error: fdfs_define.h: 没有那个文件或目录
添加链接
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
如果安装nginx时提示error: the HTTP rewrite module requires the PCRE library
需要安装pcre包。
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev
你可能还需要安装
sudo apt-get install openssl libssl-dev
如果安装nginx时提示error: he HTTP gzip module requires the zlib library.
需要安装zlib包。
到http://www.zlib.net/上下载tar包
解压之后,进入目录,执行 ./configure
之后执行 make && make install命令进行安装
6.7、复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改
# 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 目录
# cd /usr/local/src/FastDFS/conf (fastdfs的源码位置)
# cp http.conf mime.types /etc/fdfs/
6.9、在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录
# ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
七、配置 Nginx
nginx配置相关目录:/usr/local/nginx/conf ,命令:vim nginx.conf
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;
}
}
}
启动nginx
提示:nginx: [emerg] unknown directive "ngx_fastdfs_moudle" in /usr/local/nginx/conf/nginx.conf:86
如果提示:
jnsl@129-test:/usr/local/nginx/sbin$ sudo ./nginx -s reload
ngx_http_fastdfs_set pid=16537
则说明配置成功
nginx相关命令
nginx启动、重启、关闭
一、启动
cd usr/local/nginx/sbin
./nginx
二、重启
更改配置重启nginx
kill -HUP 主进程号或进程号文件路径
或者使用
cd /usr/local/nginx/sbin
./nginx -s reload
判断配置文件是否正确
nginx -t -c /usr/local/nginx/conf/nginx.conf
或者
cd /usr/local/nginx/sbin
./nginx -t
三、关闭
查询nginx主进程号
ps -ef | grep nginx
从容停止 kill -QUIT 主进程号
快速停止 kill -TERM 主进程号
强制停止 kill -9 nginx
若nginx.conf配置了pid文件路径,如果没有,则在logs目录下
kill -信号类型 '/usr/local/nginx/logs/nginx.pid'
四、升级
1、先用新程序替换旧程序文件
2、kill -USR2 旧版程序的主进程号或者进程文件名
此时旧的nginx主进程会把自己的进程文件改名为.oldbin,然后执行新版nginx,此时新旧版本同时运行
3、kill -WINCH 旧版本主进程号
4、不重载配置启动新/旧工作进程
kill -HUP 旧/新版本主进程号
从容关闭旧/新进程
kill -QUIT 旧/新进程号
快速关闭旧/新进程
kill -TERM 旧/新进程号
八、访问地址
[http://192.168.223.129/group1/M00/00/00/wKjfgVuOJWaAACJGAAAeJmjn0P4425.jpg]