首页 > 系统相关 >CentOS7 安装FastDFS配置详解

CentOS7 安装FastDFS配置详解

时间:2024-02-28 16:37:59浏览次数:33  
标签:-- FastDFS storage CentOS7 nginx 详解 usr fastdfs tracker

一、介绍

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

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

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

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

二、安装部署

1、环境准备

名称 说明
centos 7.x
libfastcommon FastDFS分离出的一些公用函数包
FastDFS FastDFS本体
fastdfs-nginx-module FastDFS和nginx的关联模块
nginx nginx1.16.1

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 /opt/soft/FastDFS/fastdfs-6.04/conf/* /etc/fdfs/

5、tracker配置

vim /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配置

vim /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=172.16.25.61: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测试上传文件

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

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.fastken.com/ 
for more detail.

[2024-02-28 16:08:18] DEBUG - base_path=/usr/local/fastdfs/client, connect_timeout=10, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0

tracker_query_storage_store_list_without_group: 
	server 1. group_name=, ip_addr=172.16.25.61, port=23000

group_name=chen, ip_addr=172.16.25.61, port=23000
storage_upload_by_filename
group_name=chen, remote_filename=M00/00/00/rBAZPWXe6fKALpOwAAHAQ8bgi3Y271.jpg
source ip address: 172.16.25.61
file timestamp=2024-02-28 16:08:18
file size=114755
file crc32=3336604534
example file url: http://172.16.25.61/chen/M00/00/00/rBAZPWXe6fKALpOwAAHAQ8bgi3Y271.jpg
storage_upload_slave_by_filename
group_name=chen, remote_filename=M00/00/00/rBAZPWXe6fKALpOwAAHAQ8bgi3Y271_big.jpg
source ip address: 172.16.25.61
file timestamp=2024-02-28 16:08:18
file size=114755
file crc32=3336604534
example file url: http://172.16.25.61/chen/M00/00/00/rBAZPWXe6fKALpOwAAHAQ8bgi3Y271_big.jpg

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

8、安装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/

vim /etc/fdfs/mod_fastdfs.conf
store_path0=/usr/local/fastdfs/storage #存储目录,和storage.conf里面的配置要一样
tracker_server=172.16.25.61: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 /opt/soft/FastDFS/fastdfs-nginx-module-1.22/src
修改config配置文件,把两个local删除掉,因为之前安装的fastdfs的默认安装路径是/usr/include
vim config
ngx_module_incs="/usr/include"
CORE_INCS="$CORE_INCS /usr/include"

9、安装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 \
--add-module=/opt/soft/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
cp /usr/local/nginx/sbin/nginx /usr/bin
nginx
ps -ef |grep nginx

然后访问之前上传的图片,路径如下:
http://172.16.25.61:8888/chen/M00/00/00/rBAZPWXe3XCARALsAAHAQ8bgi3Y525.jpg
如果可以访问的到的话,那么说明已经安装成功了!!!

标签:--,FastDFS,storage,CentOS7,nginx,详解,usr,fastdfs,tracker
From: https://www.cnblogs.com/chunjeh/p/18040896

相关文章

  • centos7环境用docker-compose部署mysql5.7集群,redis7.2.4,springboot项目
    文件目录结构关于每个配置项及docker-compose的安装,大家可以自己查mysql配置文件master---my.cnf[mysqld]server_id=1gtid-mode=ONenforce-gtid-consistency=1binlog-ignore-db=mysqllog-bin=mysql-binbinlog_cache_size=......
  • Python面向对象,类属性,实例属性,类方法,实例方法,静态方法的区别及用法详解
    一.前言在Python的面向对象编程中,类属性和实例属性是两个不同的概念,它们在作用域和使用方式上有所区别。在Python中的面向对象编程中有三种方法:实例方法、类方法和静态方法,它们之间的差异主要体现在参数传递和调用方式上。二.面向对象-类属性和实例属性1.区别在Pyth......
  • 详解SSL证书系列(3)如何选择SSL证书
    我们知道了在网站部署SSL证书后,不管是对网站本身还是对网站的用户都能够带来许多好处。那么随着HTTPS的普及,市面上也出现了各种不同的SSL证书。并且由于SSL证书的多样性,很多人对于如何选择SSL证书有着很大的困惑。因此,本篇文章将从证书品牌,证书类型和域名类型三个方面提......
  • Lua调试函数 debug.getinfo() namewhat详解
    Lua调试的时候会用到debug.getinfo()函数,what的值文档给了解释:"Lua":Luafunction"C":Cfunction"main":mainpartofachunk(通过load函数等执行的语句)关于namewhat的值到底表示什么,官方文档只是简单列举(不全)。列举一些常见情况localgetinfo=debug.getinfol......
  • 智慧安防平台easy1400视图平台订阅功能流程详解
    在信息时代,信息的获取和传播变得至关重要。对于企业和个人而言,能够定制和接收他们感兴趣或需要的信息,将极大地提高工作效率和生活品质。本文将详细介绍如何创建和管理订阅内容,帮助您轻松掌握信息获取的主动权。 一、创建订阅首先,登录到相应的平台后,在首页界面中找到名为“下级......
  • Unity3D 光照计算方向与法线贴图详解
    在Unity3D中,光照计算方向与法线贴图是实现高质量光照效果的重要技术之一。本文将详细介绍光照计算方向与法线贴图的原理和实现方法,并给出相应的代码示例。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学......
  • Unity3D 逐顶点光照与逐像素光照详解
    Unity3D提供了丰富的功能和工具,其中包括逐顶点光照和逐像素光照。本文将详细解释这两种光照技术的原理和实现方式,并提供代码示例。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。一、逐顶点光照逐......
  • centos7安装hbase
    hbase离线包安装节点分配:实测一个节点2G内存勉强可以跑起来ip主机名节点类型192.168.1.200vm200hmaster192.168.1.201vm201HRegionServer192.168.1.202vm202HRegionServer安装hbase之前,需要有jdk环境,有hadoop集群,有zookeeperjdk安装:https://w......
  • centos7 安装zookeeper
    zookeeper单机版安装在官网下载apache-zookeeper-3.9.1-bin.tar.gz解压tar-zxvfapache-zookeeper-3.9.1-bin.tar.gz备注zk需要依赖环境变量中的JAVA_HOME,所以需要提前安装好检查JAVA_HOMEecho$JAVA_HOME修改配置文件cdzookeeper-3.9.1/confmvzoo_sa......
  • this指向详解
    JavaScript中的this是一个关键字,它在不同的情况下会指向不同的值。this的取值是在函数(非箭头函数)被调用时确定的,而不是在函数被定义时确定的。1.全局上下文中:在全局上下文中,this 指向全局对象,在浏览器中通常是 window 对象。console.log(this)//window 2.函数中......