FastDFS&Nginx分布式文件系统安装教程

简介: FastDFS&Nginx分布式文件系统安装教程

FastDFS & Nginx 分布式文件系统安装教程

前言

博客书链接:点击

版本说明:

Nginx :nginx-1.17.4.tar.gz
FastDFS :V5.12
libfastcommon :V1.0.40
FastDFS-nginx-module :V1.20


链接地址:



安装

安装依赖环境

# FastDFS 编译依赖 gcc 环境
yum install -y gcc-c++
yum install -y perl
# FastDFS 依赖 libevent 库。4 版本前用 libevent,5 直接安装 libfastcommon 即可。
yum install -y libevent


暴力安装

yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget lrzsz

tracker 编译安装

安装 libfastcommon

libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS运行所需要的一些基础库。


下载地址:https://sourceforge.net/projects/libfastcommon/

# 可以通过上面下载链接下载上传,或者通过 wget 方式下载
wget https://codeload.github.com/happyfish100/libfastcommon/tar.gz/V1.0.40
tar -zxvf V1.0.40


进入解压目录,进行编译,安装

# 进入解压目录
cd libfastcommon-1.0.40
# 编译
./make.sh
# 安装
./make.sh install


编译安装 tracker

下载地址:https://github.com/happyfish100/fastdfs/releases


下载 FastDFS.tar.gz 文件,并解压

wget https://codeload.github.com/happyfish100/fastdfs/tar.gz/V5.12
tar -zxvf V5.12

进入解压的目录,进行编译,安装

# 进入解压目录
cd fastdfs-5.12
# 编译
./make.sh
# 安装
./make.sh install
# 安装成功后,将安装目录下的 conf 下的文件拷贝到/etc/fdfs/下
cd conf/
cp * /etc/fdfs/


配置 tracker

修改 /etc/fdfs/tracker.conf

# 配置 tracker.conf 配置文件
# 启用配置文件
# false for enabled
# true for disabled
disabled=false
# tracker服务器端口(默认22122)
port=22122
# 存储日志和数据的根目录,可以根据默认创建目录,也可以修改为自己的存储路径
base_path=/home/fastdfs/tracker/bash_path
# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
store_path0=/home/fastdfs/tracker/store_path0


启动 tracker

# 启动
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
service fdfs_trackerd start
# 停止
service fdfs_trackerd stop


设置开启启动

vi /etc/rc.d/rc.local
# 在 rc.local 配置文件添加如下命令即可
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start

storage 编译安装

安装 libfastcommon

同 tracker 编译安装是的安装 libfastcommon。(如果是一台虚拟机安装Tracker和Storage,这里可以省略)

编译安装 storage

同 编译安装 tracker 。(如果是一台虚拟机安装Tracker和Storage,这里可以省略)


配置 storage

修改 /etc/fdfs/storage.conf

# 端口,storage 默认端口为 23000
port=23000
# 存储日志和数据的根目录,可以根据默认创建目录,也可以修改为自己的存储路径
base_path=/home/fastdfs/storage/base_path
# 配置 store 挂载磁盘数量
store_path_count=2
#如果有多个挂载磁盘则定义多个store_path,如下
store_path0=/home/fastdfs/storage/00
store_path1=/home/fastdfs/storage/01
# 配置tracker服务器ip,如果有多个可以配置多个
tracker_server=192.168.8.46:22122


启动 storage

# 创建软连接
ln -s /usr/bin/fdfs_storaged /usr/local/bin/
# 启动
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
service fdfs_storaged start
# 停止
service fdfs_storaged stop
systemctl stop fdfs_storaged


设置开启启动

vi /etc/rc.d/rc.local
# 在 rc.local 配置文件添加如下命令即可
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start


测试

通过 fdfs_test 程序

FastDFS 安装成功可通过 /usr/bin/fdfs_test 测试上传和下载等操作


配置 client.conf

修改 /etc/fdfs/client.conf 文件

# 配置存储日志和数据的根目录
base_path=/home/fastdfs/client/base_path
# 配置 tracker_server 地址
tracker_server=192.168.8.46:22122


上传文件测试

# 上传文件格式,由于文档在浏览器直接下载,建议使用图片之类的测试
/usr/bin/fdfs_test 客户端配置文件地址 upload 上传文件
/usr/bin/fdfs_test  /etc/fdfs/client.conf upload Docsify和Github部署博客书.md


如图示


上传 md 文件测试


image.png

上传图片测试

image.png


整合 Nginx

安装 FastDFS-nginx-module

下载地址:https://github.com/happyfish100/fastdfs-nginx-module/releases

wget https://codeload.github.com/happyfish100/fastdfs-nginx-module/tar.gz/V1.20
tar -zxvf V1.20


进入 fastdfs-nginx-module/src/ 目录下,编辑 config 配置文件

cd /usr/local/app/fastdfs/fastdfs-nginx-module-1.20/src
vim config
# 
将: CORE_INCS="$CORE_INCS /usr/lib/include"
修改为 :CORE_INCS="$CORE_INCS /usr/include"
CORE_INCS="$CORE_INCS /usr/local/include"


复制 fastdfs-nginx-module 源码中的配置文件到 /etc/fdfs 目录并进行配置

cp src/mod_fastdfs.conf /etc/fdfs/


配置 /etc/fdfs/mod_fastdfs.conf 文件

#修改以下配置
base_path=/tmp
# tracker服务IP和端口,多个就配置多行
tracker_server=192.168.8.36:22122
# storage服务端口
storage_server_port=23000
# 组名
group_name=group1
# 访问链接前缀加上组名
url_have_group_name=true
# storage 数量
store_path_count=2
# 文件存储路径
store_path0=/home/fastdfs/storage/00
store_path1=/home/fastdfs/storage/01


安装 Nginx 依赖

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

下载与安装 Nginx

# 下载 nginx
wget http://nginx.org/download/nginx-1.17.4.tar.gz
# 解压
tar -zxvf nginx-1.17.4.tar.gz
# 配置,添加 FastDFS-nginx-module
cd nginx-1.17.4
./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=/usr/local/app/fastdfs/fastdfs-nginx-module-1.20/src
# 安装
make && make install


注意

--prefix=/usr/local/nginx :是安装目录 
--add-module : 是 FastDFS-nginx-module 解压目录

配置 Nginx

创建 nginx/client 目录

mkdir -p /var/temp/nginx/client


配置 nginx 配置文件

# 添加一个,用于 nginx 转发到 fastdfs 服务器上
location ~/group([0-9])/M([0-9]*) {
  ngx_fastdfs_module;
}


需要释放 Nginx 监听的端口,启动 Nginx

# 释放 Nginx 端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 释放 tracker 端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=22122/tcp --permanent
# 释放 storage 端口
firewall-cmd --zone=public --add-port=23000/tcp --permanent
firewall-cmd --reload


Nginx 命令

cd /usr/local/nginx/sbin
# 启动
./nginx
#


通过 URL 访问测试

访问上传图片是返回的请求地址


image.png

目录
相关文章
|
3月前
|
存储 应用服务中间件 数据库
C++文件服务器项目—Nginx+FastDFS插件—5
C++文件服务器项目—Nginx+FastDFS插件—5
38 0
|
3月前
|
负载均衡 应用服务中间件 nginx
Nginx在分布式环境中的故障转移机制
Nginx在分布式环境中的故障转移机制
45 0
|
4月前
|
NoSQL Java 应用服务中间件
2024年面试复盘大全500道:Redis+ZK+Nginx+数据库+分布式+微服务
今天分享给大家的都是目前主流企业使用最高频的面试题库,也都是 Java 版本升级之后,重新整理归纳的最新答案,会让面试者少走很多不必要的弯路。同时每个专题都做到了详尽的面试解析文档,以确保每个阶段的读者都能看得懂,同时这部分面试文档也是可以免费的提供给有需要的同学们学习的
|
4月前
|
安全 Java 应用服务中间件
全网最新架构实战文档:高并发+分布式+微服务+SpringBoot+Nginx
关于一线互联网大厂网站的一些特点:用户多,分布广泛、大流量,高并发、海量数据,服务高可用、安全环境恶劣,易受网络攻击、功能多,变更快,频繁发布、从小到大,渐进发展、以用户为中心。
|
5月前
|
C++
BQ云盘项目一 -- nginx+fastcgi+fastdfs+mysql+redis+c/c++
BQ云盘项目一 -- nginx+fastcgi+fastdfs+mysql+redis+c/c++
|
6月前
|
算法 NoSQL Java
分布式接口幂等性、分布式限流(Guava 、nginx和lua限流)
接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条,这就没有保证接口的幂等性。
|
6月前
|
负载均衡 应用服务中间件 nginx
71分布式电商项目 - nginx高可用以及lvs+nginx负载均衡(资料)
71分布式电商项目 - nginx高可用以及lvs+nginx负载均衡(资料)
41 0
|
6月前
|
移动开发 网络协议 应用服务中间件
70分布式电商项目 - nginx编译参数详解
70分布式电商项目 - nginx编译参数详解
27 0
|
6月前
|
负载均衡 应用服务中间件 数据处理
69分布式电商项目 - nginx实现负载均衡
69分布式电商项目 - nginx实现负载均衡
77 0
|
6月前
|
应用服务中间件 nginx
68分布式电商项目 - nginx+tomcat反向代理
68分布式电商项目 - nginx+tomcat反向代理
40 0