• centos7.6在线安装fastdfs


    一、环境

    centos7.6

    二、下载安装包

    1、下载fastdfs

    cd  /usr/local/src

    wget https:
    //github.com/happyfish100/fastdfs/archive/refs/tags/V6.07.tar.gz -O fastdfs-6.07.tar.gz

    2、下载libfastcommon

    wget -O libfastcommon-1.0.53.tar.gz https://github.com/happyfish100/libfastcommon/archive/refs/tags/V1.0.53.tar.gz

    3、下载fastdfs-nginx-module

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

    4、下载nginx

    wget http://nginx.org/download/nginx-1.20.1.tar.gz

    三、安装步骤

    1、安装编译软件及库文件

    2、安装libfastcommon-master

    3、安装fastdfs

    4、安装nginx

    四、详细步骤

    1、安装编译工具及库文件

    yum -y install make cmake gcc gcc-c++ bison-devel ncurses-devel autoconf automake lrzsz zip unzip netstat-nat libevent.x86_64 libevent-devel.x86_64
    
    yum
    -y install zlib zlib-devel openssl openssl-devel pcre-devel

     2、解压相关文件

    mkdir -p /usr/local/fastdfs

    cd /usr/local/src

    tar -zxvf fastdfs-6.07.tar.gz -C /usr/local/fastdfs

    tar -zxvf libfastcommon-1.0.53.tar.gz -C /usr/local/fastdfs
    tar -zxvf fastdfs-nginx-module-1.22.tar.gz -C /usr/local/fastdfs

    tar
    -zxvf nginx-1.20.1.tar.gz -C /usr/local

     4、编译安装libfastcommon-master

    cd /usr/local/fastdfs/libfastcommon-1.0.53/
    ./make.sh

    ./make.sh install

    5、编译安装 fastdfs

    cd /usr/local/fastdfs/fastdfs-6.07
    ./make.sh
    .
    /make.sh install

     6、配置

    复制我们需要的配置文件

    cd /etc/fdfs 
    cp client.conf.sample client.conf 
    cp storage.conf.sample storage.conf 
    cp tracker.conf.sample tracker.conf

    配置tracker.conf,根据实际情况调整配置参数,可以不做任何调整

    cd /etc/fdfs/
    vi tracker.conf

    常用参数说明:

    disabled=false  #当前配置是否可用 false:可用 true:不可用
    connect_timeout=30  #针对socket套接字函数connect的连接超时时间设置  
    network_timeout=60  #设置网络超时,单位秒,发送或接收数据时,如果在超时时间之后依然不能进行,则本次网络通讯失败  
    base_path= /home/yuqing/fastdfs  #数据和日志文件 可根据需要修改
    max_connections=1024  #服务器支持的最大连接数
    accept_threads=1  #工作线程数,通常设置为CPU数量
    store_lookup=2  #上传组(卷)的方式:0轮询,1:指定,2:负载平衡(剩余空间最大选择)
    store_group=group1#组名称很重要 如果上一参数选择1方式,即制定组名,当前参数用来设置指定的组,如果选择其他方式,当前参数无效 
    http.server_port=9090 #http端口,使用Nginx来访问则不需要这个

    配置storage.conf,根据实际情况调整配置参数

    cd /etc/fdfs/

    vi storage.conf

    修改tracker_server 参数的IP改成我们自己实际的IP

    常用参数说明

    group_name=group1 #组名称很重要,如果tracker.conf配置为指定组名的话要和tracker.conf配置的相同
    base_path= /home/fastdft/fastdfs_storage_log  #storaged服务日志目录
    store_path0= /home/fastdft/resource #文件数据存放目录
    tracker_server=192.168.1.129:22122 #服务器IP:端口 ,IP根据本机IP来填写(阿里云服务器有两个ip地址,请使用公共ip,不要使用私密ip)
    http.server_port=9091 #http端口,使用Nginx来访问则不需要这个

    创建默认目录

    mkdir -p /home/yuqing/fastdfs

    7、启动

    启动tracker:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
    启动storage:
    /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start

    注:先启动tracker,等1min再启动storage

    8、检查

    netstat -unltp | grep fdfs

     说明成功了

    查看tracker上是否有相应的存储节点,即 tracker和storage是否连接起来了

    /usr/bin/fdfs_monitor /etc/fdfs/storage.conf

     成功了。

    9、测试

    配置client.conf,根据实际情况调整配置参数

    编辑client.conf:vim /etc/fdfs/client.conf
    base_path=/home/fastdft/fastdfs_client_log #tracker服务器文件路径 
    tracker_server=47.94.101.217:22122#tracker服务器IP地址和端口号 (阿里云公共ip)
    http.tracker_server_port=9090# tracker 服务器的 http 端口号,必须和tracker的设置对应

    上传文件/home/fastdft/7.png至服务器进行测试

    fdfs_test /etc/fdfs/client.conf upload  /home/fastdft/7.png

     若出现路径则表示测试成功

     10、安装 fastdfs-nginx-module-1.22

    将相关配置拷贝到/etc/fdfs下

    cd /usr/local/fastdfs/fastdfs-6.07/conf
    cp anti
    -steal.jpg http.conf mime.types /etc/fdfs/

    配置mod_fastdfs.conf,配置参数根据实际情况调整

    cd /usr/local/fastdfs/fastdfs-nginx-module-1.22/src
    cp mod_fastdfs.conf /etc/fdfs

    cd
    /etc/fdfs
    vim mod_fastdfs.conf

    重点修改tracker_server实际地址

     tracker_server=47.94.101.217:22122
     group_name=group1
     url_have_group_name = true
     store_path0=/home/fastdft/resource

     添加fastdfs-nginx-module并安装

    cd /usr/local/nginx-1.20.1

    ./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs/fastdfs-nginx-module-1.22/src --with-http_ssl_module
    make
    && make install

     修改nginx配置文件

    cd /usr/local/nginx/conf
    vim nginx.conf server { listen
    8080;(可改变端口号默认是80) server_name 47.94.101.217;(或者是域名) location / { root html; index index.html index.htm; } location /group1/M00 { alias /home/fastdft/resource/; ngx_fastdfs_module; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }

     启动并验证nginx

    cd /usr/local/nginx/sbin     打开sbin目录
    ./nginx                      启动  
    ./nginx -s reload            重新载入配置文件  
    ./nginx -s reopen            重启 Nginx  
    ./nginx -s stop              停止 Nginx 

     检查nginx是否启动成功

    输入nginx监听地址测试:

     http://47.94.101.217:8080/

     验证下载:http://47.94.101.217:8080/group1/M00/00/00/L15l2WD7irCAYkPOAAOg2OcsP7I470.png

    五、问题排查

    1、nginx启动正常但是无法访问

    检查防火墙是否开启,如果开启,打开所需要的端口

    firewall-cmd --zone=public --add-port=8080/tcp --permanent //开放nginx端口
    firewall-cmd --zone=public --add-port=23000/tcp --permanent //开放storage端口
    firewall-cmd --zone=public --add-port=22122tcp --permanent //开放tracker端口
    firewall-cmd --reload

    云服务器上添加安全组规则,开放指定端口号 8080 23000 22122

     2 、nginx失败

    • Nginx启动只有master进程而没有worker进程
    • Nginx启动有两个master进程而没有worker进程
    • Nginx启动报: …/storage/trunk_mgr/trunk_shared.c, line: 194"Permission denied"
    • Nginx启动报:worker process 2396 exited on signal 11 (core dumped) ngx_http_fastdfs_proce

    解决思路(不分析原因只谈解决方法,这三个问题其实可以做一个问题,因为只要是配置有问题,worker进程就无法正常启动)
    1.排查fastdfs-nginx-module模块下的mod_fastdfs.conf文件是否拷贝到了fdfs文件夹下
    2.排查fdfs目录下的tracker.conf、storage.conf、mod_fastdfs.conf三个配置文件中的base_path、store_path0、base_path路径下的文件夹是否创建
    3.以上两步检测无误后,编辑nginx.conf文件,将#user nobody修改为user root,否则会报…/storage/trunk_mgr/trunk_shared.c, line: 194"Permission denied"即权限问题并且worker进程无法启动
    4.以上工作都做完,那么重点来了,在启动Nginx服务前需要首先开启fastdfs服务,唉,说多了都是泪!!!否则就会出现启动了两个master服务,错误日志疯狂刷worker process 9584 exited on signal 11 (core dumped),内存疯狂上升,风扇疯狂转,CPU疯狂升温、以及疯狂秃顶。。。

    六、参考

    1、https://github.com/happyfish100/fastdfs/wiki

    2、https://blog.csdn.net/luoluchen/article/details/88256341

  • 相关阅读:
    H5图片上传、压缩
    数据库基本操作
    数组遍历
    CURL
    获取IP
    Memcached的实战笔记
    修bug总结 (基于java语言)
    java开发工作的总结
    多线程测试类
    可清除的单例对象获取类
  • 原文地址:https://www.cnblogs.com/tesila/p/15049232.html
Copyright © 2020-2023  润新知