参考自:
我自己的环境和安装包,亲测可用
- 环境 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.zipfastdfs-nginx-module_v1.16.tar.gznginx-1.6.2.tar.gzfastdfs_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.gitcd 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 installlibfastcommon 默认安装到了/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/storagestore_path0=/fastdfs/storagetracker_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.confbase_path=/fastdfs/trackertracker_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 configCORE_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 updatesudo 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:22122url_have_group_name = truestore_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 reloadngx_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 旧/新进程号
八、访问地址
[]