centos7下安装fastDFS+Nginx
第一步:准备工作
1、libfastcommon
从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库,基础环境
在安装 FastDFS 前需要先安装这个
下载地址址:https://github.com/happyfish100/libfastcommon/releases
2、FastDFS
* FastDFS 安装包
* 下载地址:https://github.com/happyfish100/fastdfs/releases
3、fastdfs-nginx-module
* 为了实现通过 HTTP 服务访问和下载 FastDFS 服务器中的文件
* 可以重定向文件链接到源服务器取文件,避免同一组 Storage 服务器同步延迟导致文件访问错误
* 下载地址:https://github.com/happyfish100/fastdfs-nginx-module/releases
3.1.5本次采用的安装包版本如下
* libfastcommon :1.0.41
* FastDFS :6.03
* fastdfs-ninx-module :1.22
将以上安装包拷贝到 CentOS7 下的 /root 目录下
第二步:安装libfastcommon
libfastcommon 安装依赖于 gcc 和 perl,故要先安装这两个
# 在线安装 gcc(安装系统时,选择开发工具安装和安全工具安装后,gcc自动安装)
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
# 在线安装 perl,下载好安装包后
# 进入 root 目录下
cd /root
# 解压 libfastcommon 压缩包
tar zxvf libfastcommon-1.0.41.tar.gz -C /usr/local
# 进入 libfastcommon 文件夹中,编译 libfastcommon 以及安装
cd /usr/local/libfastcommon-1.0.41
./make.sh && ./make.sh install
第三步:安装 FastDFS
cd /root
# 解压 FastDFS 压缩包,编译以及安装
tar zxvf fastdfs-6.03.tar.gz -C /usr/local
cd /usr/local/fastdfs-6.03
./make.sh && ./make.sh install
cd /usr/bin && ls |grep fdfs
配置 Tracker
# 创建 Tracker 的存储日志和数据的根目录
mkdir -p /home/fastdfs/tracker
cd /etc/fdfs
cp tracker.conf.sample tracker.conf
# 配置 tracker.conf
vi tracker.conf
在这里,tracker.conf 只是修改一下 Tracker 存储日志和数据的路径
# 启用配置文件(默认为 false,表示启用配置文件)
disabled=false
# Tracker 服务端口(默认为 22122)
port=22122
# 存储日志和数据的根目录
base_path=/home/fastdfs/tracker
配置 Storage
# 创建 Storage 的存储日志和数据的根目录
mkdir -p /home/fastdfs/storage
cd /etc/fdfs
cp storage.conf.sample storage.conf
# 配置 storage.conf
vi storage.conf
在这里,storage.conf 只是修改一下 storage 存储日志和数据的路径
# 启用配置文件(默认为 false,表示启用配置文件)
disabled=false
# Storage 服务端口(默认为 23000)
port=23000
# 数据和日志文件存储根目录
base_path=/home/fastdfs/storage
# 存储路径,访问时路径为 M00
# store_path1 则为 M01,以此递增到 M99(如果配置了多个存储目录的话,这里只指定 1 个)
store_path0=/home/fastdfs/storage
# Tracker 服务器 IP 地址和端口,单机搭建时也不要写 127.0.0.1
# tracker_server 可以多次出现,如果有多个,则配置多个
tracker_server=192.168.229.166:22122
# 设置 HTTP 访问文件的端口。这个配置已经不用配置了,配置了也没什么用
# 这也是为何 Storage 服务器需要 Nginx 来提供 HTTP 访问的原因
http.server_port=8888
启动 Tracker 和 Storage 服务
# 启动 Tracker 服务
# 其它操作则把 start 改为 stop、restart、reload、status 即可。Storage 服务相同
/etc/init.d/fdfs_trackerd start
# 启动 Storage 服务
/etc/init.d/fdfs_storaged start
第四步:测试上传文件
# 修改 Tracker 服务器客户端配置文件
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vi /etc/fdfs/client.conf
client.conf 中修改 base_path 和 Tracker 服务器的 IP 地址与端口号即可
# 存储日志文件的基本路径
base_path=/home/fastdfs/tracker
# Tracker 服务器 IP 地址与端口号
tracker_server=192.168.229.166:22122
拷贝一张图片到 root 目录下
# 存储到 FastDFS 服务器中
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/test.png
当返回文件 ID 号,如 group1/M00/00/00/wKjlpltF-K-AZQQsAABhhboA1Kk469.png 则表示上传成功
第五步:设置开机启动
vi /etc/rc.d/rc.local
加入配制:
/etc/init.d/fdfs_trackerd start
/etc/init.d/fdfs_storaged start
第六步:安装nginx
准备文件
下载地址:http://nginx.org/en/download.html
Nginx : 1.18.0
将以上安装包拷贝到 CentOS7 下的 /root 目录下
目的如下:
Storage 安装 Nginx,为了提供 http 的访问和下载服务,同时解决 group 中 Storage 服务器的同步延迟问题
Tracker 安装 Nginx,主要是为了提供 http 访问的反向代理、负载均衡以及缓存服务
安装与配置 Nginx
Nginx 依赖环境安装
Nginx 依赖环境有 GCC(这个在安装 libfastcommon 时就安装了)、PCRE、zlib 和 openssl。可以通过以下几条命令 or 一条命令进行在线安装
# 安装 GCC(安装系统时,选择开发工具安装和安全工具安装后,gcc自动安装)
编译安装 nginx
cd /root
tar -zxvf nginx-1.18.0.tar.gz -C /usr/local
cd /usr/local/nginx-1.18.0/
# 给 Nginx 添加 fastdfs-nginx-module 模块
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
tar -zxvf fastdfs-nginx-module-1.22.tar.gz -C /usr/local
cd /usr/local/fastdfs-nginx-module-1.22/src
vi config
增加以下:
:%s+/usr/local+/usr
cd /usr/local/nginx-1.18.0/
./configure --add-module=/usr/local/fastdfs-nginx-module-1.22/src
提示如下错误,需要安装PCRE
rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm
提示如下错误,需要安装zlib
rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm
make && make install
fastdfs-nginx-module 和 FastDFS 配置文件修改
# 复制 FastDFS 的部分配置文件到 /etc/fdfs
cd /usr/local/fastdfs-6.03/conf/
cp http.conf mime.types /etc/fdfs/
cd /home/fastdfs/storage
ln -s /home/fastdfs/storage/data/ /home/fastdfs/storage/data/M00
# 复制 fastdfs-nginx-module 源码中的配置文件到 /etc/fdfs 中
cp /usr/local/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/
vi /etc/fdfs/mod_fastdfs.conf
mod_fastdfs.conf 配置如下
# Tracker 服务器IP和端口修改
tracker_server=192.168.229.166:22122
# url 中是否包含 group 名称,改为 true,包含 group
url_have_group_name = true
# 配置 Storage 信息,修改 store_path0 的信息
store_path0=/home/fastdfs/storage
# 其它的一般默认即可,例如
base_path=/tmp
group_name=group1
storage_server_port=23000
store_path_count=1
配置 Nginx
vi /usr/local/nginx/conf/nginx.conf
location ~/group([0-9])/M00 {
root /home/fastdfs/storage/data;
ngx_fastdfs_module;
}
启动 Nginx
# 启动 Nginx
/usr/local/nginx/sbin/nginx
# 重启 Nginx
/usr/local/nginx/sbin/nginx -s reload
# 停止 Nginx
/usr/local/nginx/sbin/nginx -s stop
通过 HTTP 访问文件
根据 URL 访问之前上传的那张图片
http://192.168.110.128/group1/M00/00/00/wKhugF7B9QaAPq72AAAACr9A3dw566.png
注意
# 每次开机时,手动打开 Tracker 服务
/etc/init.d/fdfs_trackerd start
# 打开 Storage 服务
/etc/init.d/fdfs_storaged start
# 启动 Nginx
/usr/local/nginx/sbin/nginx
浙公网安备 33010602011771号