CentOS7安装FastDFS

  • 介绍
  • 1、环境准备
  • 2、安装gcc和libevent
  • 3、安装libfastcommon
  • 4、安装FastDFS
  • 5、tracker配置(121.4.50.199)
  • 6、storage配置(123.57.166.10)
  • 7、client测试上传文件
  • 8、安装Nginx提供web服务(nginx要安装在storage所在的服务器)
  • 9、安装fastdfs-nginx-module模块到nginx


介绍

FastDFS是一个开源的高性能分布式文件系统。它的主要功能包括:文件存储,文件同步和文件访问(文件上传和文件下载),它可以解决高容量和负载平衡问题。FastDFS应该满足基于照片共享站点和视频共享站点等文件的网站的要求。

FastDFS具有两个角色:tracker和storage。tracker负责调度和负载均衡以访问文件。storage负责存储文件和文件管理,包括:文件存储,文件同步,提供文件访问界面。它还管理元数据,这些元数据是表示为文件的键值对的属性。例如:width = 1024,键是“width”,值是“1024”。

tracker和storage包含一台或多台服务器。tracker或storage群集中的服务器可以随时添加到群集中或从群集中删除,而不会影响在线服务。tracker群集中的服务器是对等的。

官方文档:https://github.com/happyfish100/fastdfs/wiki

1、环境准备

名称

说明

centos

7.x

libfastcommon

FastDFS分离出的一些公用函数包

FastDFS

FastDFS本体

fastdfs-nginx-module

FastDFS和nginx的关联模块

nginx

nginx1.16.1

去GitHub下载软件,将下载好的软件上传到服务器

centos7连接ntp centos7连接fc存储_服务器

2、安装gcc和libevent

#安装gcc环境
yum install git gcc gcc-c++
#安装libevent
yum -y install libevent

3、安装libfastcommon

# 解压libfastcommon-1.0.42.tar.gz
cd libfastcommon-1.0.42/
# 编译
./make.sh
# 安装
./make.sh install

4、安装FastDFS

# 解压fastdfs-6.04.tar.gz
cd fastdfs-6.04/
# 编译
./make.sh
# 安装
./make.sh install

centos7连接ntp centos7连接fc存储_fastdfs_02


fastdfs相关命令在/usr/bin下

fastdfs配置文件在/etc/fdfs下

将解压缩后的fastdfs里面的conf文件夹下的配置文件,拷贝到/etc/fdfs下统一管理。

cp * /etc/fdfs/

centos7连接ntp centos7连接fc存储_服务器_03


我这里采用的是分布式部署:一台作为tracker(121.4.50.199),一台作为storage(123.57.166.10), 上面的操作在两台服务器上都要执行。

你也可以在一台机器上配置tracker和storage(单机部署)。

5、tracker配置(121.4.50.199)

修改/etc/fdfs/tracker.conf

#修改/etc/fdfs/tracker.conf,需要修改的内容如下
port=22122  # tracker服务器端口(默认22122,一般不修改)
base_path=/usr/local/fastdfs/tracker  # 存储日志和数据的根目录
# 创建文件夹
mkdir -p /usr/local/fastdfs/tracker
# 开放端口(云服务器要配置安全组)
firewall-cmd --permanent --zone=public --add-port=22122/tcp
# 启动tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
# 查看tracker是否启动成功
ps -ef | grep tracker

centos7连接ntp centos7连接fc存储_fastdfs_04

6、storage配置(123.57.166.10)

修改/etc/fdfs/storage.conf

#修改/etc/fdfs/storage.conf,需要修改的内容如下
group_name=chen #设置组名
port=23000  # storage服务端口(默认23000,一般不修改)
base_path=/usr/local/fastdfs/storage  # 数据和日志文件存储根目录
store_path0=/usr/local/fastdfs/storage # 第一个存储目录
tracker_server=121.4.50.199:22122 #tracker服务器的IP和端口
http.server_port=8888  # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
# 创建文件夹
mkdir -p /usr/local/fastdfs/storage
# 开放端口(云服务器要配置安全组)
firewall-cmd --permanent --zone=public --add-port=23000/tcp
# 启动storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
# 查看storage是否启动成功
ps -ef | grep storage

centos7连接ntp centos7连接fc存储_linux_05

7、client测试上传文件

在storage所在的服务器配置client(123.57.166.10)

修改/etc/fdfs/client.conf

#修改/etc/fdfs/client.conf,需要修改的内容如下
base_path=/usr/local/fastdfs/client
tracker_server=121.4.50.199:22122
# 创建文件夹
mkdir -p /usr/local/fastdfs/client
# 测试上传(fdfs_test)
cd /usr/bin
./fdfs_test /etc/fdfs/client.conf upload /home/logo.jpg

centos7连接ntp centos7连接fc存储_nginx_06


此时还不可以访问到该图片,需要配置web服务但是可以在/usr/local/fastdfs/storage/data/00/00看到上传的文件

centos7连接ntp centos7连接fc存储_fastdfs_07

8、安装Nginx提供web服务(nginx要安装在storage所在的服务器)

# 安装gcc环境
yum install git gcc gcc-c++
# 安装pcre
yum install -y pcre pcre-devel
# 安装zlib
yum install -y zlib zlib-devel
# 安装openssl
yum install -y openssl openssl-devel
# 创建文件夹,下面的nginx安装需要用到
mkdir /var/temp/nginx -p

解压nginx-1.16.1.tar.gz 包

进入解压的文件夹,执行下面的命令:

./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

centos7连接ntp centos7连接fc存储_centos7连接ntp_08


然后执行下面的命令编译安装nginx

make && make install

nginx的安装路径: /usr/local/nginx

centos7连接ntp centos7连接fc存储_nginx_09


nginx相关命令:

# 查看版本
nginx -v 
# 启动nginx
nginx
# 检查配置文件修改是否正确
nginx -t
# 停止ngix 
nginx -s quit
# 重新载入nginx(当配置信息发生修改时) 
nginx -s reload
# 查看帮助信息
nginx -h

9、安装fastdfs-nginx-module模块到nginx

# 解压fastdfs-nginx-module-1.22.tar.gz
cd fastdfs-nginx-module-1.22/src
# 将mod_fastdfs.conf配置文件拷贝到/etc/fdfs/
cp mod_fastdfs.conf /etc/fdfs/

修改mod_fastdfs.conf配置文件

#修改/etc/fdfs/mod_fastdfs.conf,需要修改的内容如下
store_path0=/usr/local/fastdfs/storage #存储目录,和storage.conf里面的配置要一样
tracker_server=121.4.50.199:22122  #tracker服务器的IP和端口
group_name=chen #设置组名
url_have_group_name = true #配置url使用组名
base_path=/usr/local/fastdfs/tmp #配置存储日志文件的位置

创建文件夹
mkdir -p /usr/local/fastdfs/tmp

cd /home/tools/FastDFS/fastdfs-nginx-module-1.22/src

修改config配置文件

centos7连接ntp centos7连接fc存储_centos7连接ntp_10


把这两个local删除掉,因为之前安装的fastdfs的默认安装路径是/usr/include

centos7连接ntp centos7连接fc存储_fastdfs_11


删除后:

centos7连接ntp centos7连接fc存储_nginx_12


nginx添加fastdfs-nginx-module 模块(安装新模块要将之前配置的模块都加上)

去nginx安装目录下的sbin目录

cd /home/tools/nginx-1.16.1/sbin

然后执行下面的命令:

./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=/home/tools/FastDFS/fastdfs-nginx-module-1.22/src

然后执行

make && make install

安装完之后在nginx.conf配置监听的服务和端口

cd /usr/local/nginx/conf
vim nginx.conf
listen       8888;    ## 该端口为storage.conf中的http.server_port相同,记得开放端口
#添加ngx_fastdfs_module模块,修改为自己设置的组名chen,后面添加文件存储的路径MOO
location /chen/M00 {
        ngx_fastdfs_module;
}

修改完配置文件后执行重启nginx

./nginx -s quit
./nginx

然后访问之前上传的图片,路径如下:

http://123.57.166.10:8888/chen/M00/00/00/ezmmCl_SyKOARNrQAAca2OnCdjg702.jpg

http://storage所在服务器地址:storage.conf中的http.server_port/group_name/remote_filename

centos7连接ntp centos7连接fc存储_服务器_13


OK!如果可以访问的到的话,那么说明已经安装成功了!!!

如果访问不到,查看端口是否开放,云服务器记得要设置安全组!!!