CentOS安装使用单节点FastDFS
FastDFS文件准备
1 2 3 4 5 6 7 8
| git clone https://github.com/happyfish100/libfastcommon.git --depth 1
git clone https://github.com/happyfish100/fastdfs.git --depth 1
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
wget http://nginx.org/download/nginx-1.15.4.tar.gz
|
1. 安装libfastcommon-master
1.1 安装gcc
GCC用来对C语言代码进行编译运行,使用yum命令安装:
1.2 编译安装
1 2 3 4 5 6
| cd libfastcommon-master
./make.sh ./make.sh install
|
2. 安装fastdfs
1 2 3 4 5 6 7
| tar -zxvf FastDFS_v5.08.tar.gz
cd FastDFS
./make.sh
./make.sh install
|
如果安装成功,会看到/etc/init.d/下看到提供的脚本文件:
1
| ll /etc/init.d/ | grep fdfs
|
fdfs_trackerd
是tracker启动脚本
fdfs_storaged
是storage启动脚本
能够在 /etc/fdfs/ 目录下看到默认的配置文件模板:
tarcker.conf.sample
是tracker的配置文件模板
storage.conf.sample
是storage的配置文件模板
client.conf.sample
是客户端的配置文件模板
2.1 配置并启动tracker服务
FastDFS的tracker和storage在刚刚的安装过程中,都已经被安装了,因此我们安装这两种角色的方式是一样的。不同的是,两种需要不同的配置文件。先配置tracker服务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
vim /etc/fdfs/tracker.conf
base_path=/powershop/tracker
mkdir -p /powershop/tracker
/etc/init.d/fdfs_trackerd start
/etc/init.d/fdfs_trackerd stop
service fdfs_trackerd start
|
2.2 配置并启动storage服务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
vim /etc/fdfs/storage.conf
base_path=/powershop/storage
store_path0=/powershop/storage
tracker_server=192.168.204.131:22122
mkdir -p /powershop/storage
/etc/init.d/fdfs_storaged start
/etc/init.d/fdfs_storaged stop
service fdfs_storaged start
|
检查FastDFS Tracker Server是否启动成功:
3. nginx访问FastDFS
3.1 为什么需要用Nginx访问?
FastDFS通过Tracker服务器,将文件放在Storage服务器存储,但是同组存储服务器之间需要进入文件复制,有同步延迟的问题。
假设Tracker服务器将文件上传到了192.168.4.125,上传成功后文件ID已经返回给客户端。此时FastDFS存储集群机制会将这个文件同步到同组存储192.168.4.126,在文件还没有复制完成的情况下,客户端如果用这个文件ID在192.168.4.126上取文件,就会出现文件无法访问的错误。
而fastdfs-nginx-module可以重定向文件连接到文件上传时的源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误
3.2 安装fastdfs-nginx-module插件
1 2 3 4 5
| cd fastdfs-nginx-module/src/
vim config
:%s+/usr/local/+/usr/+g
|
3.3 配置fastdfs-nginx-module与FastDFS关联配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| cp /usr/upload/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
connect_timeout=10 tracker_server=192.168.204.131:22122
url_have_group_name=true
store_path0=/powershop/storage
cd /usr/upload/FastDFS/conf/ cp http.conf mime.types /etc/fdfs/
|
4. 安装Nginx
4.1 如果没有安装过nginx
1
| yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
|
- 配置nginx安装包,并指定fastdfs-nginx-model
1 2 3
| cd nginx-1.10.0 # 将fastdfs-nginx-moudle源码作为模块编译进去 ./configure --prefix=/usr/local/nginx --add-module=/usr/upload/fastdfs-nginx-module/src
|
4.2 如果已经安装过nginx
1) 进入nginx目录:
1
| cd /usr/upload/nginx-1.10.0/
|
2) 配置FastDFS 模块
1
| ./configure --prefix=/usr/local/nginx --add-module=/usr/upload/fastdfs-nginx-module/src
|
注意:这次配置时,要添加fastdfs-nginx-moudle模块
3) 编译,注意,这次不要安装(install)
4) 替换nginx二进制文件:
备份:
1
| mv /usr/bin/nginx /usr/bin/nginx-bak
|
用新编译的nginx启动文件替代原来的:
4.3 启动nginx
配置nginx整合fastdfs-module模块
我们需要修改nginx配置文件:
1
| vim /usr/java/nginx/conf/nginx.conf
|
将文件中,原来的server 80{ ...}
部分代码替换为如下代码:
1 2 3 4 5 6 7 8 9 10
| server { listen 80; server_name image.shop.com;
location ~/group([0-9])/ { ngx_fastdfs_module; } }
|
启动nginx:
1 2 3 4 5
| ./nginx # 启动nginx
./nginx -s stop # 停止nginx
./nginx -s reload # 重新载入配置文件
|
# 可通过ps -ef | grep nginx
查看nginx是否已启动成功
CentOS安装使用FastDFS
https://github.com/i-xiaoxin/2022/10/23/CentOS安装使用FastDFS/