最近折腾了FastDFS最新版本5.0.8,记录下FastDFS+Nginx+fastdfs-nginx-module安装配置的安装过程,希望对网友能有所帮助。
新版本需要libfastcommon支持:
这里必须下载master.zip版本,1.0.7安装过程会出错,不知道为什么,还是个发布版!
libfastcommon安装
wget https://github.com/happyfish100/libfastcommon/archive/master.zip unzip master.zip cd libfastcommon-master/ ./make.sh ./make.sh install
FastDFS安装
wget https://github.com/happyfish100/fastdfs/archive/V5.08.tar.gz tar -xvzf ./V5.08.tar.gz cd fastdfs-5.08/ ./make.sh ./make.sh install
修改配置文件
cd /etc/fdfs/ 会看到三个配置文件: client.conf.sample, tracker.conf.sample,storage.conf.sample 复制,然后配置: cp client.conf.sample client.conf cp tracker.conf.sample tracker.conf cp storage.conf.sample storage.conf mkdir -p /data/fastdfs
配置storage.conf 详细看:FastDFS配置文件(storage.conf)
注意:同一个组内的不同的storage的配置要相同(方便同步文件) 配置storage属于哪个group: group_name=group1 (因为现在先只是配一个组,所以这里就为group1) 配置base_path: 原来 base_path=/home/yuqing/fastdfs 这里需要改为自己的文件路径, 如:base_path=/data/fastdfs (这里的文件目录如果没有,要自己新建, 不然会报错) 配置store_path0: 这里 store_path0=/home/yuqing/fastdfs 也要改为自己的文件路径 如: store_path0=/data/fastdfs (建议与bast_path一样) 配置tracker_server: 还有:tracker_server要改为自己的trakcer_server的ip 如:tracker_server=192.168.0.1:22122 (若有特殊要求可查看文档根据实际情况配置)
配置tracker.conf 详细看:FastDFS配置文件(tracker.conf)
配置base_path: 原来 base_path=/home/yuqing/fastdfs 这里需要改为自己的文件路径, 如:base_path=/data/fastdfs (这里的文件目录如果没有,要自己新建, 不然会报错) (若有特殊要求可查看文档根据实际情况配置)
配置client.conf
配置base_path: 原来 base_path=/home/yuqing/fastdfs 这里需要改为自己的文件路径, 如:base_path=/data/fastdfs (这里的文件目录如果没有,要自己新建, 不然会报错) 配置tracker_server: 还有:tracker_server要改为自己的trakcer_server的ip 如:tracker_server=192.168.1.1:22122 (若有特殊要求可查看文档根据实际情况配置)
启动服务程序
启动tracker server
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
启动storage server
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
参数status查看状态
常用命令
FastDFS的STORAGE SERVER的7种状态和问题
查看集群状态:/usr/bin/fdfs_monitor /etc/fdfs/client.conf
上传文件:/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/wwwroot/123.jpg
删除文件:/usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKhdglhsVC6AFKf9AAKZMwsher8772.jpg
安装fastdfs-nginx-module
下载地址:https://github.com/happyfish100/fastdfs-nginx-module/
fastdfs-nginx_module作用:在storage之间同步数据时候,还没同步完全时候就发生下载时,直接从源数据storage下载
将fastdfs-nginx-module压缩包解压,并记录下它的路径,因为安装的时候要用到
进入nginx的安装包的源目录,然后编译和安装fastdfs-nginx-module
注意:要先关闭所有的nginx进程,在进行下面这一步骤
cd /user/local/src wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip unzip ./fastdfs-nginx-module.zip cd /user/local/nginx ./configure --add-module=/user/local/src/fastdfs-nginx-module/src make make install
配置nginx.conf
(默认nginx.conf是在目录/usr/local/nginx/conf/ 里面的) 命令: cd /usr/local/nginx/conf/ vi nginx.conf
只有一个group默认配置
最简单的配置:当mod_fastdfs.conf 配置文件中只有一个group1, 且配置了 url_have_group_name = false 时,即访问地址不使用分组名称,那么只需在nginx的配置文件中增加以下配置即可:
在nginx.conf里面的server{里面添加location /M00……},添加下面的几行:
location /M00 { root /data/fastdfs/data; ngx_fastdfs_module; }
多个group的配置
当配置多个组,且mod_fastdfs.conf 里面指定了url_have_group_name= true 时,配置方式:
location ~ /group([0-9]) /M00 { root /data/fastdfs/data; ngx_fastdfs_module; } 比如:在group1上的 nginx 的nginx.conf 配置是 location /group1 /M00 { root /data/fastdfs/data; ngx_fastdfs_module; } 比如:在group2上的 nginx 的nginx.conf 配置是 location /group2 /M00 { root /data/fastdfs/data; ngx_fastdfs_module; }
创建/M00软连接
命令:ln -s /data/fastdfs/data /data/fastdfs/data/M00
修改mod_fastdfs.conf
将/user/loacal/src//fastdfs-nginx-module-master/src(位置看自己将解压到哪里) 里面的mod_fastdfs.conf复制到/etc/fdfs/里面 1.更改tracker_server的IP如:tracker_server=192.168.0.1:22122 2.更改store_path0这个要与storaged的配置一致,如:store_path0=/data/fastdfs
重新启动Nginx
将FastDFS配置目录下的2个文件复制到/etc/fdfs目录下:
cp /usr/local/fastdfs/conf/http.conf /etc/fdfs/ cp /usr/local/fastdfs/conf/mime.types /etc/fdfs/
命令:
/usr/local/nginx/sbin/nginx -s stop /usr/local/nginx/sbin/nginx
注意:要实现HTTP下载必须要求Nginx和fastdfs-nginx-module起来
FastDFS常见配置和安装错误问题
php FastDFS扩展安装
cd /fastdfs-5.08/php_client/
phpize
./configure --with-php-config=/user/loacal/php/bin/php-config
make
make install
cat /fastdfs-5.08/php_client/fastdfs_client.ini >> /user/loacal/php/etc/php.ini
重启php
phpinfo看到:fastdfs_client v5.08 support enabled
然后网上找例子或/php_client/里有
结合:nginx_lua_graphicmagick搭建图片处理服务器 可以做缩略图
再结合ngx_cache_purge可以做个前段缓存
如有其它问题可以留言相互学习!