分布式文件系统FastDfs的搭建

文件服务器

文件,图片存储需要注意的:

​ * 图片名称不能重复

​ * 图片的后缀名,保存跟源文件后缀名一致

​ * 文件服务器-长期开着的

传统的用io流保存到web服务器本地的方式,可以直接用当前web服务的路径+图片名称来访问。

但是类似于商品图片这种海量级文件,光靠web服务器的硬盘是无法满足的。

另外如果,web服务器是集群的那么A服务器是没法访问B服务器的本地文件的。

所以需要把文件服务单独管理起来,成为文件服务器。

实现方式就是nginx+FastDFS

FastDFS介绍

FastDFS 是一个由 C 语言实现的开源轻量级分布式文件系统,作者余庆(happyfish100),支持Linux、FreeBSD、AID 等 Unix 系统,解决了大数据存储和读写负载均衡等问题,适合存储 4KB~500MB之间的小文件,如图片网站、短视频网站、文档、app 下载站等,UC、京东、支付宝、迅雷、酷狗等都有使用。

该软件作者是阿里巴巴大牛、chinaUnix版主余庆个人独立开发的。

FastDFS上传下载的流程

在这里插入图片描述

fastdfs结构说明

在这里插入图片描述

一 、FastDFS–tracker安装

如果没有安装包,可自取:
链接:ngnix+fastdfs安装包
提取码:pt3h

1 FastDFS安装环境

安装之前给自己的虚拟机做个快照

FastDFS是C语言开发,建议在linux上运行,本教程使用Centos7.0作为安装环境。

安装gcc 依赖环境

# yum install gcc-c++ -y

# 如果安装redis的时候,可能需要 yum install gcc-c++ -y automake autoconf 这个两个依赖。

2 安装libevent

# yum -y install libevent

3 安装libfastcommon

1、上传压缩包文件libfastcommonV1.0.7.tar.gz 到 /usr/local目录下,并解压。

2、tar -zxvf libfastcommonV1.0.7.tar.gz

3、进入到解压后的文件夹中
在这里插入图片描述

4、进行编译 ./make.sh
在这里插入图片描述
5、如果出现编译perl 不识别 运行下面这段命令 – os7

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

6、安装 ./make.sh install
在这里插入图片描述
注意:libfastcommo.so安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/lib目录,所以需要将/usr/lib64下的库文件拷贝至/usr/lib下。

# cp /usr/lib64/libfastcommon.so /usr/lib/

4 tracker编译安装

1、上传资料FastDFS_v5.05.tar.gz到 /usr/local 目录下

2、解压编译安装

# tar -zxvf FastDFS_v5.05.tar.gz

# cd FastDFS

# ./make.sh

# ./make.sh install

3、安装成功之后,将安装目录下的conf下的文件拷贝到**/etc/fdfs/**下。

# cd conf

# cp * /etc/fdfs/

4、修改配置文件

# vim /etc/fdfs/tracker.conf

base_path=/home/yuqing/fastdfs ----> base_path=/opt/fastdfs

在这里插入图片描述

5、 创建fastdfs文件夹

# mkdir /opt/fastdfs

5 设置启动项

# mkdir /usr/local/fdfs

1、拷贝安装目录/usr/local/FastDFS下stop.sh 和restart.sh 到**/usr/local/fdfs/**

# cp restart.sh /usr/local/fdfs/

# cp stop.sh /usr/local/fdfs/
在这里插入图片描述
2、修改启动脚本

# vim /etc/init.d/fdfs_trackerd

2.1 将第15行

**usr/local/bin —> ** /usr/bin

在这里插入图片描述

2.2 将bin换成fdfs

共4处 23 28 49 57行

在这里插入图片描述

在这里插入图片描述

把启动脚本中的路径按照上图修改

修改完毕后

3、注册服务

[root@localhost FastDFS]# cd /etc/init.d/

[root@localhost init.d]# chkconfig --add fdfs_trackerd

可以使用 chkconfig --list 查看是否已经添加成功!

在这里插入图片描述

然后可以用service fdfs_trackerd start 启动测试如下图

在这里插入图片描述

在这里插入图片描述

注意:建议到此给虚拟机做快照!

二、FastDFS–storage安装

1 修改配置文件

# vim /etc/fdfs/storage.conf

行号:41 base_path=/home/yuqing/fastdfs ----> base_path=/opt/fastdfs

行号:109 base_path=/home/yuqing/fastdfs ----> base_path=/opt/fastdfs/fdfs_storage

行号:118 tracker_server=192.168.209.121:22122 ----> tracker_server=192.168.xxx.xxx:22122(自己虚拟机ip)

在这里插入图片描述

Store_path0 : 表示文件存储路径 fdfs_storage

在这里插入图片描述

2 创建fdfs_storage文件夹

# mkdir /opt/fastdfs/fdfs_storage

3 设置启动服务

# vim /etc/init.d/fdfs_storaged

在这里插入图片描述

在这里插入图片描述

# cd /etc/init.d/

# chkconfig - -add fdfs_storaged

# chkconfig --list

启动服务

# service fdfs_storaged start

在这里插入图片描述

4 功能文件目录总结说明

/opt/fastdfs/数据文件及日志
/usr/bin/fdfs_trackerd 、 fdfs_storaged启动执行程序
/usr/local/fdfs/stop.sh 、 restart.sh关闭、重启脚本
/etc/init.d/fdfs_tracked 、fdfs_storaged服务启动脚本
/etc/fdfs/配置文件

5 上传图片测试

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

1、修改**/etc/fdfs/client.conf**

[root@localhost ~]# vim /etc/fdfs/client.conf

base_path=/opt/fastdfs

tracker_server=192.168.xxx.xxx:22122(自己虚拟机ip)

在这里插入图片描述

比如将/root下的日志上传到FastDFS中:

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root/001.jpg

在这里插入图片描述

对应的上传路径:

在这里插入图片描述

图片存储在 /opt/fastdfs/fdfs_storage/data/00/00

注意:到此处!必须备份快照!

三、FastDFS整合nginx

1 安装前配置fastdfs-nginx-module

1、上传fastdfs-nginx-module_v1.16.tar.gz上传到 /usr/local,并解压

# tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

2、编辑配置文件:修改config文件将/usr/local/路径改为/usr/ 3处

# vim fastdfs-nginx-module/src/config
在这里插入图片描述
3、将FastDFS-nginx-module/src下的mod_fastdfs.conf拷贝至/etc/fdfs/下

/etc/fdfs/ : 所有的配置文件都在此处!

[root@localhost src]# cp mod_fastdfs.conf /etc/fdfs/

并修改mod_fastdfs.conf的内容:

# vim /etc/fdfs/mod_fastdfs.conf

行号 10,40 ,53行url中包含group名称,62行指定文件存储路径

在这里插入图片描述

继续修改(ip地址为自己虚拟机的)

在这里插入图片描述

4、将libfdfsclient.so拷贝至/usr/lib下

[root@localhost src]# cp /usr/lib64/libfdfsclient.so /usr/lib/

2 安装nginx

安装nginx 需要先配置nginx 的运行环境

Nginx 安装

1、Nginx服务器搭建

第一步:安装C语言编译环境

gcc:yum -y install gcc-c++

第二步:安装第三方的开发包。

  • PCRE

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 Perl 兼容的正则表达式库。Nginx的HTTP模块使用PCRE来解析正则表达式,所以需要在Linux上安装PCRE库。

yum install -y pcre pcre-devel

注:pcre-devel是使用PCRE开发的一个二次开发库。Nginx也需要这个库。

  • zlib

zlib库提供了很多种压缩和解压缩的方式,Nginx使用zlib对HTTP包的内容进行gzip,所以需要在Linux上安装zlib库。

yum install -y zlib zlib-devel

  • OpenSSL

OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。

yum install -y openssl openssl-devel

2、创建nginx/client目录

解压:nginx-1.12.2.tar.gz

# cd nginx-1.12.2

[root@localhost src]# mkdir -p /var/temp/nginx/client

cd /usr/local/nginx-1.12.2的原始程序目录 [/usr/local/nginx-1.12.2]

configure: 表示自动配置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=/usr/local/fastdfs-nginx-module/src

3、配置成功
在这里插入图片描述

编译

[root@localhost nginx-1.12.2]# make

安装

[root@localhost nginx-1.12.2]# make install

3 编辑nginx.conf 代理!

编辑 nginx 的安装路径的nginx.conf

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

server {
        listen       80;
        server_name  192.168.1.136;
        \#charset koi8-r;
        \#access_log  logs/host.access.log  main;
       	location / {
            root   html;
            index  index.html index.htm;
        }
        location /group1/M00/ {
             ngx_fastdfs_module;
        }

启动nginx

# /usr/local/nginx/sbin/nginx

重启:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值