FastDfs配置nginx扩展模块进行文件访问
近期琢磨了下fastdfs分布式文件系统以及相关nginx扩展模块,发现其中存在的坑还是很多,社区中各种配置,各种安装方法,个人搞了一下,还是各种问题,解决后,为方便大家,特意总结下从头到尾的流程配置;
1. 删除过往安装残留物
因大家在社区找相关文档基础前提下,肯定是趟过坑,安装过多次,特此删除下残留物,保证健康干净的环境:
find / -name nginx|xargs rm -rf
find / -name fastdfs|xargs rm -rf
find / -name fdfs|xargs rm -rf
删除完成后进行下一步;
2. 安装所需环境依赖
yum install gcc -y
yum install libevent -y
yum install libevent-devel -y
fastdfs需要c语言环境支持,并且需要相关lib库,当然后面的libfastcommon在高版本环境下已经兼容libevent,可以选择不安装libevent,个人建议还是跟着步骤安装上为好;
3. 安装fastdfs核心类库
在个人目录下创建相应临时目录用于编译,安装(根据个人情况)
cd /home/yangtuo/software/nginx
本人在自己家目录下创建了nginx文件夹,用于编译安装;
接下来下载核心fastdfs核心类库libfastdfscommon
wget https://codeload.github.com/happyfish100/libfastcommon/tar.gz/V1.0.36
mv V1.0.36 libfastcommon.tar.gz
tar -zxvf libfastcommon.tar.gz
对下载的tar包进行更名,解压,如下
进入对应目录下进行编译,安装
cd libfastcommon-1.0.36
./make.sh
编译通过后进行安装
到此,核心类库编译安装成功,进行下一步;
4. 安装编译fastdfs
同样进入到前面创建的nginx目录下
cd /home/yangtuo/software/nginx
下载fastdfs
wget https://codeload.github.com/happyfish100/fastdfs/tar.gz/V5.11
同样的操作更名解压
mv V5.11 fastdfs.tar.gz
tar -zxvf fastdfs.tar.gz
执行后的目录如下
相同的配方,同样进入目录下
编译安装
./make.sh
./make install
安装完成后会在/usr/bin下生成相应的命令,当然这些命令默认是全局的不需要配置环境变量;
至此,初步安装完成;
安装完成后/etc会生成fdfs文件夹,里面为相应的配置fastdfs的配置文件
这时候进入到 fastdfs-5.11文件夹下的conf目录
需要把如图所示的两个配置文件复制到/etc/fdfs中
cp http.conf mime.types /etc/fdfs
如图
缺少这两个配置文件的话,后续起启动fastdfs时候,会报错/etc/fdfs下找不到配置文件
安装完成后,进入下面一步修改相应配置文件
5. 修改fastdfs配置文件
fastdfs简介在这里就不赘述了,主要分为tracker和storage两部分,所以在/etc/fdfs下修改配置文件名称为:
mv storage.conf.sample storage.conf
mv tracker.conf.sample tracker.conf
mv client.conf.sample client.conf
修改client配置文件主要为方便后面测试上传文件用;
修改名称完成后就到了修改配置文件内容的时候了,注意注意:
vim tracker.conf
主要修改以下
base_path=/opt/fastdfs/tracker
此处修改tracker的日志启动文件路径,前提是此文件路径必须真实存在,要不然无法启动;
tracker的启动命令,不做赘述直接开搞
此种情况即为没有找到指定文件夹,需手动创建,创建完成后再运行
如法炮制,编辑storage.conf,需要修改的地方有三处
base_path=/opt/fastdfs/storage ##storage启动日志文件目录
store_path0=/opt/fastdfs/storage/files ##storage存储器真实存放文件的路径
tracker_server=?:22122 ##tracker追踪器的ip端口
?处填写服务器或者虚拟机ip
启动storage存储器
fdfs_storaged /etc/fdfs/storage.conf
这时候会在相应的/opt/fastdfs/storage/files目录下生成一个data的文件夹
data下默认有256个文件夹,分别每个文件夹下面有256个子文件夹,总计65535个文件夹,这些文件夹用于存放文件;
至此这步操作fastdfs安装完成;
此时可以查看启动是否成功
ps -ef|grep fdfs
6. 下载安装nginx以及fastdfs_nginx_module扩展模块
同样进入到临时目录nginx下
wget http://nginx.org/download/nginx-1.14.2.tar.gz
wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz
特别注意:nginx和扩展模块版本需要对应,具体的对应关系建议社区内搜索下,版本不对应的话无法正常启动nginx;
进行更名,解压操作
tar -zxvf nginx-1.14.2.tar.gz
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
解压后进入fastdfs-nginx-module/src中,将其中的
圈中的配置文件拷贝至/etc/fdfs中
cp mod_fastdfs.conf /etc/fdfs/
同时修改扩展模块的conf文件
与此同时,进入到我们刚才复制到/etc/fdfs下扩展模块的配置文件
修改如下:
base_path=/opt/fastdfs/nginx_mod ##扩展模块启动日志文件目录
tracker_server=?:22122 ##tracker追踪器ip端口
url_have_group_name = true ##使用组名搜索
store_path0=/opt/fastdfs/storage/files##实际storage中存放文件的路径,必须storage配置保持一致
进入nginx解压目录进行解压安装
编译命令如下
./configure --prefix=/usr/local/nginx_fastdfs --add-module=/home/yangtuo/software/nginx/fastdfs-nginx-module/src/ --error-log-path=/usr/local/nginx_fdfs/logs/error.log --pid-path=/usr/local/nginx_fdfs/logs/nginx.pid --http-log-path=/usr/local/nginx_fdfs/logs/access.log
编译参数配置指定安装目录,pid存放目录,成功失败日志目录以及扩展模块的目录;
make
make install
至此安装完成,成功会在/usr/local下出现nginx_fastdfs
的文件夹,最后只需要配置下nginx配置文件启动即可访问
进入/usr/local/nginx_fastdfs,进入conf目录修改nginx.conf
进入sbin目录下启动nginx
启动命令如下:
./nginx -c /usr/local/nginx_fastdfs/conf/nginx.conf
7. 测试文档上传以及浏览器http请求访问
前面我们在/etc/fdfs下有一个client.conf配置文件
进入对应目录,编辑此配置文件
base_path=/opt/fastdfs/client ## 客户端连接日志文件存放位置
tracker_server=121.36.0.200:22122 ## 连接到tracker的ip端口
至此修改完毕,进行上传,上传特别简单
在当前文件夹下创建一个txt文档
上传命令为:
这时候会在files文件夹下面data/00/00生成对应为文件:
后缀为big.txt的文件为fastdfs默认生成的备份文件,后缀为-m的为mata文件,记录对应文件的名称,大小,长度等等;
这时候用浏览器访问路径
http://121.36.0.200/group1/M00/00/00/wKgAl175jLGAf3KGAAAAC2Eu9d4003.txt
成功进行访问,哈哈!!!
后续
文章中存在疏忽点,仅为个人总结,供参考,不喜勿喷,欢迎进行交流!!