FastDFS问题汇总
FastDFS 问题汇总

FastDFS问题汇总

FastDFS问题汇总

错误信息:找不到节点或文件

问题

使用 FastDFS的java客户端上传图片报错

1
com.github.tobato.fastdfs.exception.FdfsServerException: 错误码:2,错误信息:找不到节点或文件

排错过程

  1. 尝试重启 tracker和storage

    重启后仍出现该错误

  2. 检查tracker.conf和storage.conf中的配置

    检查各个配置文件的ip和端口是否设置正确,检查后发现配置文件没有问题

  3. 检查应用的配置是否有问题,检查后重启服务

    检查配置没有问题,重启服务后仍报错

  4. 查看tracker和storage的日志

    查看tracker的日志时发现日志中报错:

    1
    ERROR - file: tracker_service.c, line: 2152, client ip: 192.168.10.70, sync src server: 47.105.70.191 not exists

    我的设置中并没有47.105.70.191,问题找到了。

解决

  1. 进入storage的数据目录

    1
    2
    # 我配置的数据目录位置为:/home/fastdfs/storage
    cd /home/fastdfs/storage/data
  2. 查看隐藏文件.data_init_flag

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # 列出所有文件
    ls -al
    # 查看隐藏文件
    cat .data_init_flag
    # 发现问题IP
    # storage_join_time=1636447416
    # sync_old_done=1
    # sync_src_server=47.105.70.191
    # sync_until_timestamp=0
    # last_ip_addr=192.168.10.70
    # last_server_port=23000
    # last_http_port=8888
    # current_trunk_file_id=0
    # trunk_last_compress_time=0
  3. 删除.data_init_flag文件,重启tracker和storage服务

    1
    2
    3
    4
    5
    # 删除文件
    rm -rf .data_init_flag
    # 重启服务
    sudo service fdfs_trackerd restart
    sudo service fdfs_storaged restart
  4. 再次测试,文件正确上传

文件正确上传却访问不到

问题

文件正确上传到FastDFS,但是通过配置的Nginx却访问不了图片

排错过程

  1. 检查端口是否对外开放

  2. 检查Nginx是否正常启动

  3. 检查Nginx配置是否正常

    主要检查Nginx配置的FastDFS访问规则

  4. FastDFS安装运行是否使用的是root账号

    如果安装运行使用的是root账号,Nginx需要指明用户组为root

解决

  1. 【情况1】开放端口

    1
    2
    3
    4
    5
    # 方式一:关闭防火墙
    systemctl stop firewalld
    # 方式二:开放指定端口
    firewall-cmd --zone=public --add-port=19090/tcp --permanent
    firewall-cmd --reload
  2. 【情况2】查看nginx的进程是否启动或查看日志

    1
    2
    3
    4
    5
    # 查看nginx进程
    netstat -neplt | grep 'nginx'
    # 查看日志, 日志的位置在nginx的安装目录中, 我这里的安装目录为: /opt/nginx
    cat /opt/nginx/logs/error.log
    cat /opt/nginx/logs/access.log
  1. 【情况3】使用FastDFS的nginx模块,nginx配置如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    server {
    listen 19090;
    server_name xxx.xxx.com;

    location ~/group([0-9])/ {
    ngx_fastdfs_module;
    }

    location / {
    root html;
    index index.html index.htm;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }

    }
  2. 【情况4】我遇到的就是这种情况,需要修改nginx的用户组

    默认的nginx配置的第一行不会指明任何用户组,如下:

    nginx默认配置

    打开user的注释并修改其值为root,修改后如下:

    nginx修改后的配置

    修改后重启nginx,即可

文章作者: imxushuai
文章链接: https://www.imxushuai.com/2021/12/30/48.FastDFS问题汇总/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 imxushuai
支付宝打赏
微信打赏