002_FastDFS单机部署

本文详细介绍了在Linux环境下,从环境准备到FastDFS、libfastcommon、fastdfs-nginx-module的安装,再到Tracker、Storage节点的配置与启动,以及Nginx的配置和测试,最后实现通过Nginx代理访问FastDFS存储的文件,全面展示了FastDFS分布式文件系统的部署过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 环境准备

1.1. 使用的系统软件

1.2. 编译环境

1.2.1. 编译命令(实际安装了git、gcc、gcc-c++、pcre、pcre-devel、zlib、zlib-devel、openssl-devel、wget、vim等工具和依赖模块)

yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y

1.2.2. 运行截图

1.3. 磁盘目录

1.3.1. 目录说明

说明

位置

所有安装包

/usr/local/fastdfs/

数据存储位置

/usr/local/fastdfs/storage01/

这里为了方便把日志、数据存储都放到了storage01

1.3.2. 创建目录和切换目录

mkdir /usr/local/fastdfs #创建所有安装包目录
mkdir /usr/local/fastdfs/storage01 #创建数据存储目录
cd /usr/local/fastdfs #切换到安装目录准备下载安装包

2. 安装libfatscommon

2.1. 安装命令

git clone https://github.com/happyfish100/libfastcommon.git --depth 1
cd libfastcommon/ #下载libfastcommon模块
./make.sh && ./make.sh install #编译安装

2.2. 安装截图

2.3. 安装完成后/usr/lib64和/usr/lib目录下都多了一个libfastcommon.so

3. 安装FastDFS

3.1. 安装命令

cd ../ #返回上一级目录
git clone https://github.com/happyfish100/fastdfs.git --depth 1
cd fastdfs/ #下载FastDFS本体
./make.sh && ./make.sh install #编译安装

3.2. 安装截图

3.3. 安装完成在etc目录下多了一个fdfs目录

3.4. 配置文件准备

#tracker跟踪服务器的配置文件, 拷贝tracker.conf.sample到/etc/fdfs目录下, 并重命名为tracker.conf
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf 

#storage储存服务器的配置文件, 拷贝storage.conf.sample到/etc/fdfs目录下, 并重命名为storage.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf 

cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #client配置文件
cp /usr/local/fastdfs/fastdfs/conf/http.conf /etc/fdfs/ #供nginx访问使用
cp /usr/local/fastdfs/fastdfs/conf/mime.types /etc/fdfs/ #供nginx访问使用

3.5. 配置文件准备完成

4. 安装fastdfs-nginx-module

4.1. 安装fastdfs-nginx-module命令

#返回上一级目录
cd ../ 
#下载fastdfs-nginx-module模块
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1 
#拷贝mod_fastdfs.conf到/etc/fdfs目录下
cp /usr/local/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs

4.2. 安装截图

5. 安装nginx

5.1. 安装nginx命令

wget http://nginx.org/download/nginx-1.15.4.tar.gz #下载nginx压缩包
tar -zxvf nginx-1.15.4.tar.gz #解压
cd nginx-1.15.4/ #切换到nginx-1.15.4目录
#添加fastdfs-nginx-module模块
./configure --add-module=/usr/local/fastdfs/fastdfs-nginx-module/src/ 
#编译安装
make && make install 

5.2. 添加fastdfs-nginx-module模块截图

5.3. 编译安装截图

5.4. 安装完nginx后, /usr/local目录下多了一个nginx目录

6. tracker配置

6.1. 配置参数

#tracker服务器ip为 192.168.25.135
#编辑tracker.conf文件
vim /etc/fdfs/tracker.conf
#需要修改的内容如下
port=22122  #tracker服务器端口(默认22122, 一般不修改)
base_path=/usr/local/fastdfs/storage01  #存储日志和数据的根目录

6.2. 启动tracker

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf #启动tracker服务
/etc/init.d/fdfs_trackerd start #启动tracker服务
/etc/init.d/fdfs_trackerd restart #重启动tracker服务
/etc/init.d/fdfs_trackerd stop #停止tracker服务
chkconfig fdfs_trackerd on #自启动tracker服务

7. storage配置

7.1. 配置参数

#编辑storage.conf文件
vim /etc/fdfs/storage.conf
#需要修改的内容如下
group_name=group1 #卷/组名
port=23000  #storage服务端口(默认23000,一般不修改)
base_path=/usr/local/fastdfs/storage01  #数据和日志文件存储根目录
store_path0=/usr/local/fastdfs/storage01  #第一个存储目录
tracker_server=192.168.25.135:22122  #tracker服务器IP和端口
http.server_port=8888  #http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)

7.2. 启动storage节点

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf #启动storage服务
/etc/init.d/fdfs_storaged start #启动storage服务
/etc/init.d/fdfs_storaged restart #重动storage服务
/etc/init.d/fdfs_storaged stop #停止动storage服务
chkconfig fdfs_storaged on #自启动storage服务

8. client测试

8.1. 配置参数

vim /etc/fdfs/client.conf #编辑client.conf文件
#需要修改的内容如下
base_path=/usr/local/fastdfs/storage01 #数据和日志文件存储根目录
tracker_server=192.168.25.135:22122    #tracker服务器IP和端口
#保存后测试,返回ID表示成功 如:group1/M00/00/00/xx.tar.gz
fdfs_upload_file /etc/fdfs/client.conf /usr/local/fastdfs/nginx-1.15.4.tar.gz

8.2. 上传截图

8.3. 没有nginx无法http下载

9. 配置nginx访问

9.1. 配置mod_fastdfs.conf

#编辑mod_fastdfs.conf文件
vim /etc/fdfs/mod_fastdfs.conf
#需要修改的内容如下
group_name=group1 #卷/组名
tracker_server=192.168.25.135:22122  #tracker服务器IP和端口
url_have_group_name=true #url中需要包含组名
store_path0=/usr/local/fastdfs/storage01 #第一个存储目录

9.2. 配置nginx.config(配置nginx需要重启nginx, 使用reload命令无效)

#编辑nginx.conf文件
vim /usr/local/nginx/conf/nginx.conf
#添加如下配置
server {
    listen       8888;    #该端口为storage.conf中的http.server_port相同
    server_name  localhost; #当前主机的名字
    location ~/group[1-9]/ { #拦截带有group1~group9的请求
        ngx_fastdfs_module;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
    root   html;
    }
}

9.3. 启动nginx

/usr/local/nginx/sbin/nginx #启动nginx
/usr/local/nginx/sbin/nginx -s reload #重启nginx
/usr/local/nginx/sbin/nginx -s stop #停止nginx
#测试下载,用外部浏览器访问刚才已传过的nginx安装包,引用返回的ID
http://192.168.25.135:8888/group1/M00/00/00/wKgZh17l5maAGr8HAA-itrfn0m4.tar.gz
#弹出下载单机部署全部跑通

9.4. 启动nginx后, 我们的nginx有2个进程, master和worker

9.5. 配置80端口可访问

upstream fdfs_group1 { #group1的配置
        server 192.168.25.135:8888 weight=1 max_fails=2 fail_timeout=30s; 
        server 192.168.25.137:8888 weight=1 max_fails=2 fail_timeout=30s;
}
upstream fdfs_group2 { #group2的配置
        server 192.168.25.138:8888 weight=1 max_fails=2 fail_timeout=30s;
}   
server {
listen       80;
    server_name  localhost;

    location /group1/ {   #80端口代理访问group1
        proxy_next_upstream http_502 http_504 error timeout invalid_header;  
        proxy_pass http://fdfs_group1;  
        expires 30d;  
    } 
    location /group2/ {   #80端口代理访问group2
        proxy_next_upstream http_502 http_504 error timeout invalid_header;    
        proxy_pass http://fdfs_group2;  
        expires 30d;  
    } 

    #关闭favicon.ico的log
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }
}

9.6. 测试下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值