FastDFS+Nginx安装配置

FastDFS+Nginx安装配置

目录

版本:注意版本匹配问题(可在版本说明中查看

  • FastDFS :v6.09 or higher version
  • libfastcommon:1.0.60
  • libserverframe:1.1.19
  • cd fastdfs-nginx-module:V1.23
  • nginx:nginx-1.16.1

下载上传安装包到服务器

项目地址:

https://github.com/happyfish100

FastDFS安装

1、安装FastDFS依赖库

1. 编译环境

安装 gcc、libevent、libevent-devel

yum install -y gcc gcc-c++ libevent libevent-devel make automake autoconf libtool

2. 安装 libfastcommon及libserverframe 库

地址:github.com/happyfish10…

  1. 上传下载好的包到/usr/local/src 或
    cd /usr/local/src
    
    wget https://github.com/happyfish100/libfastcommon/archive/refs/tags/V1.0.60.tar.gz
    wget https://github.com/happyfish100/libserverframe/archive/refs/tags/V1.1.19.tar.gz
    
    
  2. 解压
    1. tar -zxvf libfastcommon-1.0.60.tar.gz
    2. tar -zxvf libserverframe-1.1.19.tar.gz
  3. 进入安装目录,执行编译、安装
    1. 安装libfastcommon
      cd libfastcommon-1.0.60
      ./make.sh && ./make.sh install
      
      
    2. 安装libserverframe
       cd libserverframe-1.1.19
       ./make.sh && ./make.sh install
      

2、安装FastDFS及配置

  1. 传包 或
    cd /usr/local/src
    
    wget https://github.com/happyfish100/fastdfs/archive/refs/tags/V6.09.tar.gz
    
  2. 解压tar -zxvf fastdfs-6.09.tar.gz
  3. 进入安装目录,执行编译、安装
    cd fastdfs-6.09
    ./make.sh && ./make.sh install
    
    
  4. 拷贝配置文件(如果不拷贝,搭配nginx访问会报错
    cp /usr/local/src/fastdfs-6.09/conf/http.conf /etc/fdfs/ #供nginx访问使用
    cp /usr/local/src/fastdfs-6.09/conf/mime.types /etc/fdfs/ #供nginx访问使用
    
  5. 查看编辑及配置文件,FastDFS编译出来的文件存放在/usr/bin目录下,所有配置文件存放在/etc/fdfs目录下
    ll /usr/bin/fdfs* 
    -rwxr-xr-x 1 root root  380264 Sep 24 00:11 /usr/bin/fdfs_appender_test
    -rwxr-xr-x 1 root root  380040 Sep 24 00:11 /usr/bin/fdfs_appender_test1
    -rwxr-xr-x 1 root root  367008 Sep 24 00:11 /usr/bin/fdfs_append_file
    -rwxr-xr-x 1 root root  365648 Sep 24 00:11 /usr/bin/fdfs_crc32
    -rwxr-xr-x 1 root root  367040 Sep 24 00:11 /usr/bin/fdfs_delete_file
    -rwxr-xr-x 1 root root  367768 Sep 24 00:11 /usr/bin/fdfs_download_file
    -rwxr-xr-x 1 root root  367712 Sep 24 00:11 /usr/bin/fdfs_file_info
    -rwxr-xr-x 1 root root  387328 Sep 24 00:11 /usr/bin/fdfs_monitor
    -rwxr-xr-x 1 root root  367280 Sep 24 00:11 /usr/bin/fdfs_regenerate_filename
    -rwxr-xr-x 1 root root 1297648 Sep 24 00:11 /usr/bin/fdfs_storaged
    -rwxr-xr-x 1 root root  390160 Sep 24 00:11 /usr/bin/fdfs_test
    -rwxr-xr-x 1 root root  389384 Sep 24 00:11 /usr/bin/fdfs_test1
    -rwxr-xr-x 1 root root  509800 Sep 24 00:11 /usr/bin/fdfs_trackerd
    -rwxr-xr-x 1 root root  367984 Sep 24 00:11 /usr/bin/fdfs_upload_appender
    -rwxr-xr-x 1 root root  368992 Sep 24 00:11 /usr/bin/fdfs_upload_file
    
     ll /etc/fdfs/ 
    total 32
    -rw-r--r-- 1 root root  1909 Sep 24 00:11 client.conf
    -rw-r--r-- 1 root root 10246 Sep 24 00:11 storage.conf
    -rw-r--r-- 1 root root   620 Sep 24 00:11 storage_ids.conf
    -rw-r--r-- 1 root root  9138 Sep 24 00:11 tracker.conf
    
    
    
  6. FastDFS单机模式配置
    1. tracker配置

      vim /etc/fdfs/tracker.conf

      base_path=/home/fastdfs/tracker  # 存储日志和数据的根目录, 需创建
      
    2. storage配置

      vim /etc/fdfs/storage.conf

      base_path=/home/fastdfs/storage  # 数据和日志文件存储根目录, 需创建 
      store_path_count = 1  #指定真正存放文件的目录的个数,默认为1
      store_path0=/home/fastdfs/first  # 第一个存储目录, 需创建 可添加多个目录配置为集群模式 
      #store_path0=/home/fastdfs/second  第二个存储目录, 需创建 
      tracker_server=60.204.207.52:22122  # tracker服务器IP和端口 可有多个服务器
      #tracker_server=60.204.207.53:22122  # tracker服务器IP和端口
      http.server_port=8888  # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
      
    3. client配置

      vim /etc/fdfs/client.conf

      base_path=/home/fastdfs/client  #存放日志的目录, 需创建 
      tracker_server=60.204.207.52:22122  # 服务器1  注册当前存储节点的跟踪器地址,默认端口号为22122
      
  7. FastDFS集群模式配置
    1. tracker配置

      vim /etc/fdfs/tracker.conf

      base_path=/home/fastdfs/tracker  # 存储日志和数据的根目录, 需创建
      
    2. storage配置

      vim /etc/fdfs/storage.conf

      #需要修改的内容如下
      port=23000  # storage服务端口(默认23000,一般不修改)
      base_path=/home/fastdfs/storage  # 数据和日志文件存储根目录
      store_path0=/home/fastdfs/first  # 第一个存储目录
      tracker_server=60.204.207.52:22122  # 服务器1
      tracker_server=60.204.207.53:22122  # 服务器2
      tracker_server=60.204.207.54:22122  # 服务器3
      http.server_port=8888  # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
      
      
    3. client配置

      vim /etc/fdfs/client.conf

      #需要修改的内容如下
      base_path=/home/fastdfs/client
      tracker_server=60.204.207.52:22122  # 服务器1
      tracker_server=60.204.207.53:22122  # 服务器2
      tracker_server=60.204.207.54:22122  # 服务器3
      
      

3、启动(以下启动方式任选其一

文件方式启动

1. 启动tracker服务

fdfs_trackerd /etc/fdfs/tracker.conf

2. 启动storage服务

fdfs_storaged /etc/fdfs/storage.conf

配置systemd启动

1. tracker

修改 /usr/lib/systemd/system/fdfs_trackerd.service 中的 PIDFile,格式为:
PIDFile=$base_path/data/fdfs_trackerd.pid

vim /usr/lib/systemd/system/fdfs_trackerd.service


PIDFile=/home/fastdfs/tracker/data/fdfs_trackerd.pid  #修改目录
systemctl start fdfs_trackerd #启动tracker服务
systemctl restart fdfs_trackerd #重启tracker服务
systemctl stop fdfs_trackerd #停止tracker服务
systemctl enable fdfs_trackerd  #开机自启动
2. storage

修改 /usr/lib/systemd/system/fdfs_storaged.service 中的 PIDFile,格式为:
PIDFile=$base_path/data/fdfs_storaged.pid

vim /usr/lib/systemd/system/fdfs_storaged.service

PIDFile=/home/fastdfs/storage/data/fdfs_storaged.pid  #修改目录

systemctl start fdfs_storaged #启动storage服务
systemctl restart fdfs_storaged  #重启storage服务
systemctl stop fdfs_storaged  #停止动storage服务
systemctl enable fdfs_storaged   #开机自启动

查看storage是否已经注册到了tracker下

fdfs_monitor /etc/fdfs/storage.conf

fdfs_monitor /etc/fdfs/storage.conf
[2023-09-24 03:29:18] DEBUG - base_path=/home/fastdfs/storage, connect_timeout=5, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=1, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0

server_count=1, server_index=0

tracker server is 60.204.207.52:22122   ###说明注册成功

group count: 1

Group 1:
group name = group1
....

集群模式检测

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
# 会显示会有几台服务器 有3台就会 显示 Storage 1-Storage 3的详细信息

4、测试

fdfs命令格式

  • 上传文件命令:fdfs_test <config_file> <operation> <local_filename>
    • config_file:配置文件的位置
    • operation:upload,download,getmeta,setmeta,delete and query_servers
    • local_filename:要上传的文件名字
  • 下载文件命令:fdfs_test <config_file> download <group_name> <remote_filename>
    • group_name: 要下载的文件所在的组名
    • remote_filename:要下载的文件名(要指定在fastDFS中存储的名字)
  • 删除文件命令:fdfs_test <config_file> delete <group_name> <remote_filename>
另一种种方式:
测试,返回ID表示成功 如:group1/M00/00/00/xx.tar.gz

#上传
fdfs_upload_file <config_file> <local_filename>
命令                配置文件         本地文件

#下载 例:
fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/PMzOQmUPWzSAX0DbABAvAG3SAAY569.jpg

#删除 例
fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/PMzOQmUPWzSAX0DbABAvAG3SAAY569.jpg



执行上传命令:

fdfs_upload_file /etc/fdfs/client.conf test.jpg  

group1/M00/00/00/PMzOQmUPWzSAX0DbABAvAG3SAAY569.jpg  #此处为返回的文件保存路径



nginx安装配置

1、安装依赖

nginx依赖

yum install -y pcre pcre-devel zlib zlib-devel openssl-devel

fastdfs-nginx-module模块
cd /usr/local/src/

wget https://github.com/happyfish100/fastdfs-nginx-module/archive/refs/tags/V1.23.tar.gz

tar -zxvf /usr/local/src/fastdfs-nginx-module-1.23.tar.gz

#拷贝mod_fastdfs.conf到/etc/fdfs/
cp /usr/local/src/fastdfs-nginx-module-1.23/src/mod_fastdfs.conf /etc/fdfs/
配置mod_fastdfs.conf

vim /etc/fdfs/mod_fastdfs.conf

base_path=/home/fastdfs/nginx_mod  # 指定日志存放位置,需创建
tracker_server=60.204.207.52:22122  # 指定tracker的ip和端口
group_name=group1  # 组名
url_have_group_name = false  # true表示请求的路径包含组名,默认为false,为false时,组名默认为上面group_name指定的值
store_path0=/home/fastdfs/first  # 指定数据存放的位置, 同/etc/fdfs/storage.conf中 


以下引述可以不配置(指定头文件位置:本次不添加也可成功部署)

配置/usr/local/src/fastdfs-nginx-module-1.23/src/config

查看头文件

ll -d /usr/local/include/fast*
ls: cannot access /usr/local/include/fast*: No such file or directory

ll -d /usr/include/fast*
drwxr-xr-x 2 root root 4096 Sep 23 23:50 /usr/include/fastcommon
drwxr-xr-x 2 root root 4096 Sep 24 00:11 /usr/include/fastdfs

vim /usr/local/src/fastdfs-nginx-module-1.23/src/config

ngx_module_incs=“/usr/local/include”
改为
ngx_module_incs=“/usr/include”

2、安装nginx

  1. 下载、解压安装包

    cd /usr/local/src
    wget http://nginx.org/download/nginx-1.16.1.tar.gz
    tar -zxvf nginx-1.16.1.tar.gz
    
  2. 编译安装

    添加fastdfs-nginx-module模块

    cd /usr/local/src/nginx-1.16.1
    
    ./configure --add-module=/usr/local/src/fastdfs-nginx-module-1.23/src/
    make && make install #编译安装
    
    
  3. 配置nginx访问

    vim /etc/fdfs/mod_fastdfs.conf
    #需要修改的内容如下
    tracker_server=60.204.207.52:22122  #tracker服务器IP和端口
    url_have_group_name=true
    store_path0=/home/fastdfs/first/  #数据存储目录
    #配置nginx.config
    vim /usr/local/nginx/conf/nginx.conf 
    #添加如下配置
    server {
        listen       8888;    ## 该端口与 storage.conf中的http.server_port相同 
        server_name  localhost;
        location ~/group[0-9]/ M([0-9])([0-9])  {
            ngx_fastdfs_module;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
        root   html;
        }
    }
    #测试,用外部浏览器访问FastDFS测试传过jpg,引用返回的ID   注意 : 一定要加端口 
    http://60.204.207.52: 8888 /group1/M00/00/00/PMzOQmUPWzSAX0DbABAvAG3SAAY569.jpg
    #返回内容则部署完成
    

3、启动nginx

/usr/local/nginx/sbin/nginx #启动nginx

/usr/local/nginx/sbin/nginx -s reload #重启nginx
/usr/local/nginx/sbin/nginx -s stop #停止nginx

4、测试

#测试,用外部浏览器访问FastDFS测试传的jpg,引用返回的ID  注意:一定要加端口
http://60.204.207.52: 8888 /group1/M00/00/00/PMzOQmUPWzSAX0DbABAvAG3SAAY569.jpg
#返回内容则部署完成

注意:可能出现的错误

  1. 上传成功 但是nginx报错404或nginx无法访问 :检查mod_fastdfs.conf文件中的store_path0是否一致,访问地址有没有添加端口
  2. 如果不是在/usr/local/src文件夹下安装 可能会编译出错
  3. 如果 unknown directive “ngx_fastdfs_module” in /usr/local/nginx/conf/nginx.conf:151,可能是nginx一直是启动的,必须要重启nginx才可以,nginx -s reload无效。
  4. 如果nginx的error.log中提示:ERROR - file: ini_file_reader.c, line: 1051, include file “http.conf” not exists, line: "#include http.conf"ERROR - file: /root/fastdfs-nginx-module/src/common.c, line: 163, load conf file “/etc/fdfs/mod_fastdfs.conf” fail, ret code: 2
    需要将fastdfs的源码中的conf文件夹中的http.conf和mime.types cp到 etc/fdf文件夹中。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值