FastDFS 安装【文件服务存储服务器】
安装 FastDFS 依赖
FastDFS 是 C 语言开发的应用。安装必须使用 make、cmake 和 gcc 编译器。
# yum install -y make cmake gcc gcc-c++ perl
把FastDFS_v5.08.tar.gz和libfastcommon-master.zip进行上传到根目录下的/upload目录下
上传并解压 libfastcommon-master
上传 libfastcommon-master 到/upload目录下。libfastcommon 是从 FastDFS和 FastDHT 中提取出来的公共 C 函数库。
解压 libfastcommon-master.zip,由于是 zip 文件所以要使用 unzip 命令:
# cd /upload
# unzip libfastcommon-master.zip
编译并安装:
libfastcommon 没有提供 make 命令安装文件。使用的是 shell 脚本执行编译 和安装。
shell 脚本为 make.sh。进入解压后的文件:
# cd libfastcommon-master
编译 # ./make.sh
安装 # ./make.sh install
有固定的默认安装位置。在/usr/lib64 和/usr/include/fastcommon 两个目录中
创建软连接
因为 FastDFS 主程序设置的 lib 目录是/usr/local/lib,所以需要创建软链接
# ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
# ln -s /usr/local/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
上传并解压 FastDFS 主程序
上传 FastDFS_v5.08.tar.gz 到/upload下后解压
# cd /upload
# tar zxvf FastDFS_v5.08.tar.gz
编译并安装 FastDFS
进入到解压后的 FastDFS 文件中。
# cd FastDFS
编译 # ./make.sh
安装 # ./make.sh install
安装后,FastDFS 主程序所在位置是:
/usr/bin 可执行文件所在位置。
/etc/fdfs 配置文件所在位置。
/usr/bin 主程序代码所在位置。
/usr/include/fastdfs 包含的一些插件组所在位置。
配置 tracker
进入到/etc/fdfs 中,把 tracker 配置文件复制一份
# cd /etc/fdfs
# cp tracker.conf.sample tracker.conf
创建数据目录
创建放置 tracker 数据的目录
# mkdir -p /usr/local/fastdfs/tracker
修改配置文件
修改 tracker.conf,设置 tracker 内容存储目录。
# vim tracker.conf
base_path = /usr/local/fastdfs/tracker
默认端口 22122,不需要修改
启动服务
在目录/etc/fdfs下进行对trackerd进行启动
# service fdfs_trackerd start
启动成功后,配置文件中 base_path 指向的目录中出现 FastDFS 服务相关数据目录(data 目录、logs 目录)
查看服务运行状态
# service fdfs_trackerd status
如果显示 is running 表示正常运行
关闭防火墙
# service firewalld stop
# systemctl disable firewalld
配置 storage
storage 可以和 tracker 不在同一台服务器上。示例中把 storage 和 tracker 安 装在同一台服务器上了
复制配置文件
进入到/etc/fdfs , 把 storage 配置文件复制一份
# cd /etc/fdfs
# cp storage.conf.sample storage.conf
创建目录
创建两个目录,base 用于存储基础数据内容和日志,store 用于存储上传数据
# mkdir -p /usr/local/fastdfs/storage/base
# mkdir -p /usr/local/fastdfs/storage/store
修改配置文件
storage.conf 配置文件用于描述存储服务的行为,需要进行下述修改:
# vim /etc/fdfs/storage.conf
配置内容如下:
base_path=/usr/local/fastdfs/storage/base
store_path0=/usr/local/fastdfs/storage/store
tracker_server=tracker 服务 IP:22122
base_path - 基础路径。用于保存 storage server 基础数据内容和日志内容的 目录。
store_path0 - 存储路径。是用于保存 FastDFS 中存储文件的目录,就是要创 建 256*256 个子目录的位置。
base_path 和 store_path0 可以使用同一个目录。
tracker_server - 跟踪服务器位置。就是跟踪服务器的 ip 和端口。
启动服务
# cd /etc/fdfs
# service fdfs_storaged start
启动成功后,配置文件中 base_path 指向的目录中出现 FastDFS 服务相关数 据目录(data 目录、logs 目录),配置文件中的 store_path0 指向的目录中同样出 现 FastDFS 存储相关数据录(data 目录)。其中$store_path0/data/目录中默认创 建若干子孙目录(两级目录层级总计 256*256 个目录),是用于存储具体文件数 据的。
Storage 服务器启动比较慢,因为第一次启动的时候,需要创建 256*256 个 目录。
查看启动状态
# service fdfs_storaged status
至此fastdfs安装成功!!!
Nginx 安装
上传并安装 fastdfs-nginx-module
上传 01 资料/08 nignx 安装(包含 fastdfs 模块)/fastdfs-nginx-module_v1.16.tar.gz 到 /upload 中
进入upload目录
# cd /upload
解压
# tar zxvf fastdfs-nginx-module_v1.16.tar.gz
修改配置文件
进入解压目录中 src 目录
# cd fastdfs-nginx-module/src
编辑 config 文件
# vim config
修改配置文件中第四行,把路径中 local 去掉(一共有两个 local)。参数是用于配置安装 nginx 中的 FastDFS 组件的时候,在什么位置查找 FastDFS 核心代码。
修改结果如下
安装 nginx 的依赖
# yum install -y gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel
上传 Nginx 并解压
上传nginx-1.8.0.tar.gz 到/upload 中
# cd /upload
# tar zxvf nginx-1.8.0.tar.gz
修改 Nginx 配置
进入到 nginx 文件夹
# cd nginx-1.8.0/
创建临时目录
修改配置文件中好多位置都使用了/var/temp/nginx 目录,但是默认不会自动创建这个目 录的,需要手动创建
# mkdir -p /var/temp/nginx
修改配置文件参数:(直接复制执行)
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/upload/fastdfs-nginx-module/src
–add-module 必须定义,此配置信息是用于指定安装 Nginx 时需要加载的模块,如果未 指定,Nginx 安装过程不会加载 fastdfs-nginx-module 模块,后续功能无法实现。
编译并安装:
# make
# make install
配置 fastdfs-nginx-module 模块配置文件:
复制配置文件 fastdfs-nginx-module/src/mod_fastdfs.conf 到/etc/fdfs 目录中
# cp /upload/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
修改 mod_fastdfs.conf
进入/etc/fdfs
# cd /etc/fdfs
编辑配置文件
# vim mod_fastdfs.conf
文件内容修改
需要修改文件中四处内容,这四处内容的含义:
connect_timeout=2 #连接超时时间,单位秒
tracker_server=tracker:22122 #tracker 服务结点
url_have_group_name = false #URL 中是否包含 group 名称
store_path0=/home/yuqing/fastdfs # storage 服务结点的存储位置,与配置 storage 结点一致
修改结果如下:
connect_timeout=10
tracker_server=192.168.9.136:22122
url_have_group_name = true
store_path0=/usr/local/fastdfs/storage/store
提供 FastDFS 需要的 HTTP 配置文件
复制 FastDFS 安装包中的两个配置文件(http.conf 和 mime.types)到/etc/fdfs 目录中
# cp /upload/FastDFS/conf/http.conf /etc/fdfs/
# cp /upload/FastDFS/conf/mime.types /etc/fdfs/
创建网络访问存储服务的软连接:
在上传文件到 FastDFS 后,FastDFS 会返回 group1/M00/00/00/xxxxxxxxxx.xxx。其中 group1 是卷名,在 mod_fastdfs.conf 配置文件中已配置了 url_have_group_name,以保证 URL 解析 正确。而其中的 M00 是 FastDFS 保存数据时使用的虚拟目录,需要将这个虚拟目录定位到真 实数据目录上。
# ln -s /usr/local/fastdfs/storage/store/data/ /usr/local/fastdfs/storage/store/data/M00
修改 nginx 配置文件:
进入到安装后 nginx 目录
注意是安装目录,不是解压目录
# cd /usr/local/nginx/conf
编辑配置文件
# vim nginx.conf
修改内容 需要修改三处。
第一处:
user root; # Nginx 需要访问 linux 文件系统,必须有文件系统的权限。User root 代表 nginx 访问文件系统的权限是 root 用户权限。如果不开启权限,可能有 404 访问错误。
修改后的效果:去掉注释,user 后面写上 root
第二处:
修改文件的第九行,去掉 pid 前面的#注释,修改成下面效果。 如果不修改这个内容,第一次安装没问题,后面再次启动后会出现 nginx 无法启动问题
pid /usr/local/nginx/nginx.pid;
第三处
找到 http 标记里面的 server,在 server 上面添加下面内容
server{
listen 8888;
server_name localhost;
location ~/group([0-9])/M00{
ngx_fastdfs_module;
}
}
启动 nginx
进入到 nginx 安装目录的 sbin 文件夹
# cd /usr/local/nginx/sbin/
# ./nginx
关闭 nginx
# ./nginx -s quit
启动命令:
service fdfs_trackerd start
service fdfs_storaged start
./nginx