fastDFS搭建

1、安装gcc、unzip、libevent

#GCC用来对C语言代码进行编译运行,使用yum命令安装:
yum -y install gcc

#后面会用到解压命令(unzip),所以这里可以用yum把unzip 也装一下
yum install -y unzip zip

#FastDFS依赖libevent库,需要安装
yum -y install libevent

2、下载安装libfastcommon

#下载libfastcommon
 wget https://github.com/happyfish100/libfastcommon/archive/V1.0.43.tar.gz

#重命名
mv V1.0.43.tar.gz libfastcommon-1.0.43.tar.gz

# 解压
tar -zxvf libfastcommon-1.0.43.tar.gz


# 进入libfastcommon-1.0.43目录
cd libfastcommon-1.0.43

# 编译
./make.sh

# 安装
./make.sh install

3、下载安装FastDFS

# 下载 也可以手动下载,下载后的文件名为fastdfs-6.06.tar.gz
wget https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz
#修改压缩包名称
mv V6.06.tar.gz  fastdfs-6.06.tar.gz
# 解压
tar -zxvf fastdfs-6.06.tar.gz 
# 进入目录
cd fastdfs-6.06
# 编译
./make.sh
# 安装
./make.sh install

4、如果安装成功,会看到/etc/init.d/下看到提供的脚本文件

ll /etc/init.d/ | grep fdfs

  • fdfs_trackerd 是tracker启动脚本
  • fdfs_storaged 是storage启动脚本

能够在 /etc/fdfs/ 目录下看到默认的配置文件模板:

ll /etc/fdfs/

  • tarcker.conf.sample 是tracker的配置文件模板
  • storage.conf.sample 是storage的配置文件模板
  • client.conf.sample 是客户端的配置文件模板

5、配置并启动tracker服务

FastDFS的tracker和storage在刚刚的安装过程中,都已经被安装了,因此我们安装这两种角色的方式是一样的。不同的是,两种需要不同的新建目录配置文件。

我们要启动tracker,就修改刚刚看到的tarcker.conf,并且启动fdfs_trackerd脚本即可。

#首先将模板文件复制
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
# 创建/wangfeng/fdfs/tracker目录,为存储日志和数据的根目录
mkdir -p /wangfeng/fdfs/tracker
# 修改复制后的配置文件,将base_path=后的目录改成/wangfeng/fdfs/tracker(自己创建)
vim /etc/fdfs/tracker.conf 
# 启动服务(安装过程中,fdfs已被设为系统服务)
service fdfs_trackerd start
# 检查FastDFS Tracker Server是否启动成功
ps -ef | grep fdfs_trackerd
# 设置tracker服务开机启动:
chkconfig fdfs_trackerd on

注意:关闭防火墙:

chkconfig iptables off

启动tracker服务器: /etc/init.d/fdfs_trackerd start

停止tracker服务器: /etc/init.d/fdfs_trackerd stop

6、storage配置

Storage server 作用是文件存储,客户端上传的文件最终存储在 Storage 服务器上,可以将storage称为存储服务器

# 复制模板文件
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
# 创建/wangfeng/fdfs/storage目录,为存储日志和数据的根目录
mkdir -p /wangfeng/fdfs/storage
# 修改复制后的配置文件,将base_path=后的目录改成/wangfeng/fdfs/storage(自己创建)
vim /etc/fdfs/storage.conf 
	base_path=/wangfeng/fdfs/storage                 # 数据和日志文件存储根目录 
	store_path0=/wangfeng/fdfs/storage           # 第一个存储目录 
	tracker_server=你的IP:22122       #  tracker服务器IP和端口 
# 启动服务(安装过程中,fdfs已被设为系统服务)
service fdfs_storaged start
# 设置tracker服务开机启动:
chkconfig fdfs_storaged on

启动storage服务器:/etc/init.d/fdfs_storaged start

停止storage服务器:/etc/init.d/fdfs_storaged stop

7、测试文件上传

# 复制模板文件
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
# 创建目录
mkdir -p /wangfeng/fdfs/client
# 修改配置,bash_path以及tracker_server
vim /etc/fdfs/client.conf
    base_path = /wangfeng/fdfs/client
    tracker_server = 你的ip:22122
# 测试上传,123.txt可替换为你的文件
#创建123.txt文件
touch 123.txt
#上传
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf 123.txt

 可以看到返回一个路径 文件名是经过fastdfs加密的

现在返回的文件路径无法直接在浏览器上访问 必须搭建nginx

8、安装nginx

#下载并安装nginx的环境
#1、 gcc 安装

# yum install gcc-c++
#2、 PCRE pcre-devel 安装

# yum install -y pcre pcre-devel
#3、 zlib 安装

# yum install -y zlib zlib-devel
#4、 OpenSSL 安装

# (也可以一起安装)yum install -y openssl openssl-devel
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel



#① 下载nginx
wget -c https://nginx.org/download/nginx-1.12.1.tar.gz

#② 解压
tar -zxvf nginx-1.12.1.tar.gz

cd nginx-1.12.1

#③ 使用默认配置
./configure

#④ 编译、安装

make
make install

#⑤ 启动nginx

 cd /usr/local/nginx/sbin/
 ./nginx 

#其它命令
# ./nginx -s stop
# ./nginx -s quit
# ./nginx -s reload


#⑥ 设置开机启动
vim /etc/rc.local
#添加一行:
#/usr/local/nginx/sbin/nginx

# 设置执行权限
 chmod 755 rc.local

#⑦ 查看nginx的版本及模块

/usr/local/nginx/sbin/nginx -V

9、配置nginx

#简单的测试访问文件
#① 修改nginx.conf
vim /usr/local/nginx/conf/nginx.conf

添加如下行,将 /group1/M00 映射到 /wangfeng/fdfs/storage/data
location /group1/M00 {
    alias /wangfeng/fdfs/storage/data;
}

# 重启nginx
# /usr/local/nginx/sbin/nginx -s reload

在浏览器访问之前上传的图片、成功。

http://xxx.xxx.xxx.xxx/group1/M00/00/00/wKgz6lnduTeAMdrcAAEoRmXZPp870.jpeg

10、FastDFS 配置 Nginx 模块

fastdfs-nginx-module 模块说明

  FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储, 但是同组存储服务器之间需要进行文件复制, 有同步延迟的问题。

  假设 Tracker 服务器将文件上传到了 192.168.51.128,上传成功后文件 ID已经返回给客户端。

  此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.51.129,在文件还没有复制完成的情况下,客户端如果用这个文件 ID 在 192.168.51.129 上取文件,就会出现文件无法访问的错误。

  而 fastdfs-nginx-module 可以重定向文件链接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。

#下载fastdfs-nginx-module
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz

#解压
tar -zxvf fastdfs-nginx-module-1.22.tar.gz

配置Nginx

在nginx中添加模块

# 先停掉nginx服务
 /usr/local/nginx/sbin/nginx -s stop

#进入解压包目录
 cd /nginx-1.12.1/

# 添加模块
 ./configure --add-module=../fastdfs-nginx-module-1.22/src

#重新编译、安装
 make && make install

查看Nginx的模块

/usr/local/nginx/sbin/nginx -V

有下面这个就说明添加模块成功

复制 fastdfs-nginx-module-1.22 源码中的配置文件到/etc/fdfs 目录, 并修改

cd /fastdfs-nginx-module-1.22/src

cp mod_fastdfs.conf /etc/fdfs/

#修改配置文件
vim /etc/fdfs/mod_fastdfs.conf

修改配置文件如下

# 连接超时时间
connect_timeout=10

# Tracker Server
tracker_server=xxx.xxx.xxx.xxx:22122

# StorageServer 默认端口
storage_server_port=23000

# 如果文件ID的uri中包含/group**,则要设置为true
url_have_group_name = true

# Storage 配置的store_path0路径,必须和storage.conf中的一致
store_path0=/wangfeng/fdfs/storage

复制 FastDFS 的部分配置文件到/etc/fdfs 目录

 cd /fastdfs-6.06/conf/

 cp anti-steal.jpg http.conf mime.types /etc/fdfs/

配置nginx

vim /usr/local/nginx/conf/nginx.conf

修改配置,其它的默认

在80端口下添加fastdfs-nginx模块

location ~/group([0-9])/M00 {
    ngx_fastdfs_module;
}

注意:

  listen 80 端口值是要与 /etc/fdfs/storage.conf 中的 http.server_port=80 (前面改成80了)相对应。如果改成其它端口,则需要统一,同时在防火墙中打开该端口。

  location 的配置,如果有多个group则配置location ~/group([0-9])/M00 ,没有则不用配group。

启动nginx

/usr/local/nginx/sbin/nginx

打印处如下就算配置成功

在地址栏访问。

能下载文件就算安装成功。注意和第三点中直接使用nginx路由访问不同的是,这里配置 fastdfs-nginx-module 模块,可以重定向文件链接到源服务器取文件。

http://xxx.xxx.xxx.xxx/group1/M00/00/00/rBEMeGGOHu6APWTnAAPOErmB2k8794.jpg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FastDFS 是一个开源高性能分布式文件系统,它主要解决了海量数据存储和负载均衡的问题,适合用于图片、音频、视频等文件的存储和访问。下面是在 Linux 系统上搭建 FastDFS 文件服务器的步骤: 1. 安装依赖库: ``` yum install -y gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel wget ``` 2. 下载 FastDFS 源码: ``` wget https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz ``` 3. 解压源码并编译安装: ``` tar zxvf V6.06.tar.gz cd fastdfs-6.06/ ./make.sh ./make.sh install ``` 4. 配置 Tracker 服务器: 在 Tracker 服务器上创建一个 tracker.conf 配置文件,并添加以下内容: ``` # 配置 Tracker 服务器的 IP 和端口号 port=22122 bind_addr=192.168.0.1 # 配置存储服务器的组名和存储服务器的 IP 和端口号 group_name=group1 group_count=1 group0_ip=192.168.0.2 group0_port=23000 # 配置日志文件的路径和级别 log_level=info log_filename=/var/log/fdfs/trackerd.log ``` 5. 启动 Tracker 服务器: ``` /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart ``` 6. 配置 Storage 服务器: 在 Storage 服务器上创建一个 storage.conf 配置文件,并添加以下内容: ``` # 配置 Tracker 服务器的 IP 和端口号 tracker_server=192.168.0.1:22122 # 配置存储服务器的 IP 和端口号 port=23000 bind_addr=192.168.0.2 # 配置存储服务器的组名和容量 group_name=group1 store_path_count=1 store_path0=/data/fastdfs/storage # 配置心跳时间和同步文件的时间 heart_beat_interval=30 sync_wait_msec=600 # 配置日志文件的路径和级别 log_level=info log_filename=/var/log/fdfs/storaged.log ``` 7. 启动 Storage 服务器: ``` /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart ``` 8. 测试上传和下载文件: 在客户端机器上安装 FastDFS 客户端工具: ``` yum install -y libfastcommon wget https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz tar zxvf V6.06.tar.gz cd fastdfs-6.06/ ./make.sh ./make.sh install ``` 上传文件: ``` /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /path/to/local/file ``` 下载文件: ``` /usr/bin/fdfs_download_file /etc/fdfs/client.conf group1 M00/00/00/xxx /path/to/local/file ``` 以上就是在 Linux 系统上搭建 FastDFS 文件服务器的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值