centos7 fastdfs6.06+nginx1.26.2安装部署


介绍

FastDFS 是一个开源的分布式文件系统,主要用于高效地存储和管理大规模的文件。它特别适合处理海量文件存储的场景,如图片、视频等。

主要特点

  1. 高性能:FastDFS 设计为高性能的文件系统,支持高并发读写操作,能够满足大规模文件存储和访问的需求。
  2. 分布式存储:文件被分布在多个服务器上,通过分布式的方式管理文件,提升了系统的可扩展性和可靠性。
  3. 自动负载均衡:系统内置负载均衡机制,可以自动将文件请求分配到负载较低的服务器上,确保系统的稳定性和高效性。
  4. 高可用性:支持主从复制,通过多个存储节点进行数据备份和恢复,确保数据的安全性和系统的高可用性。

主要组件

  1. Tracker:负责客户端的连接管理和文件存储节点的负载均衡。Tracker 节点保存了文件存储节点的信息,并处理客户端的请求,决定将文件存储到哪个存储节点。
  2. Storage:负责实际的文件存储和管理。Storage 节点用于存储文件数据,并对文件进行读写操作。每个 Storage 节点可以有多个数据分片,以提高存储容量和性能。
  3. Client:与 Tracker 进行通信,获取文件存储节点的信息,并将文件上传到指定的 Storage 节点。客户端也可以通过 Tracker 获取文件的存储位置来进行下载操作。

常见应用

  • 图片和视频存储:用于存储大量的图片和视频文件,适合互联网平台、大型社交网站等场景。
  • 备份和归档:用于数据备份和归档,确保数据的长期存储和恢复能力。

使用场景

  • 电商平台:存储商品图片、用户上传的图片等。
  • 社交网络:存储用户上传的照片、视频等内容。
  • 内容分发网络 (CDN):用于存储和分发大量的静态资源文件。

环境

IP主机名系统
10.255.101.10210-255-101-10CentOS Linux release 7.9.2009 (Core)

所需安装包版本

软件版本
fastdfs6.06
nginx1.26.2
libfastcommon1.0.43
fastdfs-nginx-module1.22

fastdfs源码地址

FastDFS 源码地址

csdn下载

可以从CSDN资源包
在这里插入图片描述

Fastdfs部署

安装依赖包

首先,安装 FastDFS 和 Nginx 所需的依赖包:

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

安装libfastcommon

# 解压 libfastcommon 安装包
tar xf libfastcommon-1.0.43.tar.gz 

# 进入 libfastcommon 目录
cd libfastcommon-1.0.43

# 执行安装脚本
./make.sh 

# 安装 libfastcommon
./make.sh install

: 确认 $? 的值为 0 表示安装成功。
在这里插入图片描述

安装fastdfs

# 解压 FastDFS 安装包
unzip fastdfs-V6.06.zip 

# 进入 FastDFS 目录
cd fastdfs-V6.06

# 执行安装脚本
./make.sh

# 安装 FastDFS
./make.sh install

: 确认 $? 的值为 0 表示安装成功。

在这里插入图片描述
在这里插入图片描述

检查fastdfs是否安装成功

# 检查 FastDFS 的命令是否在 /usr/bin 目录下
ls /usr/bin|grep fdfs

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

配置fastdfs的客户端使用的配置文件

# 进入 FastDFS 配置目录
cd /etc/fdfs

# 备份示例配置文件
mkdir bak
mv *sample bak/

# 修改 ulimit 限制
ulimit -n 25600

# 创建 FastDFS 数据目录
mkdir -p /data/app/fastdfs

# 编辑配置文件
vim client.conf
vim storage.conf
vim tracker.conf

client.conf

connect_timeout=30
network_timeout=60
## 路径
base_path=/data/app/fastdfs
## 地址
tracker_server=10.255.101.102:22122
log_level=info
use_connection_pool = true
connection_pool_max_idle_time = 3600
load_fdfs_parameters_from_tracker=false
use_storage_id = false
storage_ids_filename = storage_ids.conf
http.tracker_server_port=80

storage.conf

disabled=false
group_name=group1
bind_addr=
client_bind=true
port=23000
connect_timeout=30
network_timeout=60
heart_beat_interval=30
stat_report_interval=60
## 路径
base_path=/data/app/fastdfs
max_connections=25600
buff_size = 256KB
accept_threads=2
work_threads=20
disk_rw_separated = true
disk_reader_threads = 5
disk_writer_threads = 5
sync_wait_msec=50
sync_interval=0
sync_start_time=00:00
sync_end_time=23:59
write_mark_file_freq=500
store_path_count=1
## 路径
store_path0=/data/app/fastdfs
subdir_count_per_path=256
## 地址
tracker_server=10.255.101.102:22122
log_level=info
run_by_group=
run_by_user=
allow_hosts=*
file_distribute_path_mode=0
file_distribute_rotate_count=100
fsync_after_written_bytes=0
sync_log_buff_interval=10
sync_binlog_buff_interval=10
sync_stat_file_interval=300
thread_stack_size=512KB
upload_priority=10
if_alias_prefix=
check_file_duplicate=0
file_signature_method=hash
key_namespace=FastDFS
keep_alive=0
use_access_log = false
rotate_access_log = false
access_log_rotate_time=00:00
rotate_error_log = false
error_log_rotate_time=00:00
rotate_access_log_size = 0
rotate_error_log_size = 0
log_file_keep_days = 0
file_sync_skip_invalid_record=false
use_connection_pool = true
connection_pool_max_idle_time = 3600
http.domain_name=
http.server_port=8888

tracker.conf

disabled=false
bind_addr=
port=22122
connect_timeout=30
network_timeout=60
## 路径
base_path=/data/app/fastdfs
max_connections=25600
accept_threads=1
work_threads=20
store_lookup=2
store_group=group2
store_server=0
store_path=0
download_server=0
reserved_storage_space = 10%
log_level=info
run_by_group=
run_by_user=
allow_hosts=*
sync_log_buff_interval = 10
check_active_interval = 120
thread_stack_size = 64KB
storage_ip_changed_auto_adjust = true
storage_sync_file_max_delay = 86400
storage_sync_file_max_time = 300
use_trunk_file = false 
slot_min_size = 256
slot_max_size = 16MB
trunk_file_size = 64MB
trunk_create_file_advance = false
trunk_create_file_time_base = 02:00
trunk_create_file_interval = 86400
trunk_create_file_space_threshold = 20G
trunk_init_check_occupying = false
trunk_init_reload_from_binlog = false
trunk_compress_binlog_min_interval = 0
use_storage_id = false
storage_ids_filename = storage_ids.conf
id_type_in_filename = ip
store_slave_file_use_link = false
rotate_error_log = false
error_log_rotate_time=00:00
rotate_error_log_size = 0
log_file_keep_days = 0
use_connection_pool = false
connection_pool_max_idle_time = 3600
http.server_port=8080
http.check_alive_interval=30
http.check_alive_type=tcp
http.check_alive_uri=/status.html

启动

# 启动 Tracker 服务
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

# 启动 Storage 服务
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf

# 检查服务是否启动成功
ps -ef | grep fdfs
netstat -nltp

配置开机启动

编辑 /etc/rc.local,添加启动命令:

#!/bin/bash
touch /var/lock/subsys/local
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf

: 确保 /etc/rc.d/rc.local 文件具有执行权限 chmod +x /etc/rc.d/rc.local

nginx部署

解压压缩包

# 进入 FastDFS 部署目录
cd /data/bag/fastdfs/

# 解压 fastdfs-nginx-module 和 nginx
tar xf fastdfs-nginx-module-1.22.tar.gz
tar xf nginx-1.26.2.tar.gz

安装nginx

# 进入 Nginx 目录
cd nginx-1.26.2

# 配置 Nginx,添加 FastDFS 模块
./configure --prefix=/data/app/nginx --add-module=/data/bag/fastdfs/fastdfs-nginx-module-1.22/src

# 编译和安装 Nginx
make
make install

配置fastdfs-nginx-module

生成配置文件并进行配置:

cp /data/bag/fastdfs/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/

# 编辑 mod_fastdfs.conf
vim /etc/fdfs/mod_fastdfs.conf

mod_fastdfs.conf

#include http.conf
connect_timeout=2
network_timeout=30
base_path=/tmp
load_fdfs_parameters_from_tracker=true
storage_sync_file_max_delay = 86400
use_storage_id = false
storage_ids_filename = storage_ids.conf
# 地址
tracker_server=10.255.101.102:22122
storage_server_port=23000
group_name=group1
url_have_group_name = true
store_path_count=1
# 路径
store_path0=/data/app/fastdfs
log_level=info
log_filename=
response_mode=proxy
if_alias_prefix=
flv_support = true
flv_extension = flv
group_count = 0

复制另两个web访问用到配置文件到fdfs配置目录下:

cp /data/bag/fastdfs/fastdfs-V6.06/conf/http.conf /etc/fdfs/
cp /data/bag/fastdfs/fastdfs-V6.06/conf/mime.types /etc/fdfs/

配置nginx.conf

vim /data/app/nginx/conf/nginx.conf
nginx.conf
user root;
worker_processes  1;
error_log  logs/error.log debug;
events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       8888;
        access_log  logs/host.access.log  main;

        location ~/group([0-9])/M00 {
            alias /data/app/fastdfs/data;
            ngx_fastdfs_module;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

配置启动

# 判断下配置文件是否正确
/data/app/nginx/sbin/nginx -t
# 启动
/data/app/nginx/sbin/nginx -c /data/app/nginx/conf/nginx.conf
# 查看是否启动成功
netstat -nltp |grep 8888
ps -ef | grep nginx

supervisord配置

[program:nginx]
command=/data/app/nginx/sbin/nginx  -g 'daemon off;'
directory=/data/app/nginx
autostart=true
autorestart=true
redirect_stderr=true
priority=10
stdout_logfile=/data/app/nginx/nginx.log

测试

[root@10-255-101-102 fastdfs]# pwd
/data/bag/fastdfs
[root@10-255-101-102 fastdfs]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf ./kong.jpg 
group1/M00/00/00/Cv9lZmbNn1yARojDACTXTYP85pw642.jpg
[root@10-255-101-102 fastdfs]# 

在这里插入图片描述

查看fdfs的版本

fdfs_monitor /etc/fdfs/client.conf | grep version

在这里插入图片描述

要在CentOS 7上安装和配置FastDFS,您可以按照以下步骤操作: 1. 安装依赖软件包: ``` sudo yum install -y wget gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel ``` 2. 下载并编译安装FastDFS: ``` # 下载FastDFS源代码 wget https://github.com/happyfish100/libfastcommon/archive/V1.0.43.tar.gz wget https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz # 解压源代码包 tar -zxvf V1.0.43.tar.gz tar -zxvf V6.06.tar.gz # 编译安装libfastcommon cd libfastcommon-1.0.43/ ./make.sh sudo ./make.sh install # 编译安装FastDFS cd ../fastdfs-6.06/ ./make.sh sudo ./make.sh install ``` 3. 配置Tracker服务器: ``` # 创建FastDFS配置文件目录 sudo mkdir -p /etc/fdfs/ # 复制FastDFS示例配置文件 sudo cp /usr/local/etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf # 编辑Tracker配置文件 sudo vi /etc/fdfs/tracker.conf # 修改tracker_server、http.server_port、http.anti_steal.token_check 的值,根据实际情况进行配置 # 启动Tracker服务 sudo /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf ``` 4. 配置Storage服务器: ``` # 复制FastDFS示例配置文件 sudo cp /usr/local/etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf # 编辑Storage配置文件 sudo vi /etc/fdfs/storage.conf # 修改base_path、store_path0、tracker_server、http.server_port、http.anti_steal.token_check 的值,根据实际情况进行配置 # 创建存储路径 sudo mkdir -p {store_path0,store_path1} # 启动Storage服务 sudo /usr/bin/fdfs_storaged /etc/fdfs/storage.conf ``` 5. 配置Nginx: ``` # 安装Nginx sudo yum install -y nginx # 复制FastDFS示例配置文件 sudo cp /usr/local/nginx/conf/nginx.conf /etc/nginx/nginx.conf # 编辑Nginx配置文件 sudo vi /etc/nginx/nginx.conf # 修改http.server、location 的值,根据实际情况进行配置 # 启动Nginx服务 sudo systemctl start nginx ``` 现在您已经成功安装和配置了FastDFS。您可以根据实际需求进一步调整和优化配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XMYX-0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值