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下载软件,将下载好的软件上传到服务器
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
fastdfs相关命令在/usr/bin下
fastdfs配置文件在/etc/fdfs下
将解压缩后的fastdfs里面的conf文件夹下的配置文件,拷贝到/etc/fdfs下统一管理。
cp * /etc/fdfs/
我这里采用的是分布式部署:一台作为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
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
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
此时还不可以访问到该图片,需要配置web服务但是可以在/usr/local/fastdfs/storage/data/00/00看到上传的文件
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
然后执行下面的命令编译安装nginx
make && make install
nginx的安装路径: /usr/local/nginx
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配置文件
把这两个local删除掉,因为之前安装的fastdfs的默认安装路径是/usr/include
删除后:
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
OK!如果可以访问的到的话,那么说明已经安装成功了!!!
如果访问不到,查看端口是否开放,云服务器记得要设置安全组!!!