zoukankan      html  css  js  c++  java
  • FastDFS安装配置(CentOS7)

     FastDFS安装配置,这个东东是什么请百度,下面是我成功使用CentOS7搭建成功的一个例子。

    下载文件全部放在/root/downloads文件夹下
    一、安装FastDFS
    1、环境安装:yum -y install gcc gcc-c++
    2、下载:wget https://github.com/happyfish100/libfastcommon/archive/V1.0.36.tar.gz 
    3、解压到目录:tar xf V1.0.36.tar.gz
    4、进入解压目录内:cd libfastcommon-1.0.36
    5、编译:./make.sh  -j 4  (4核方式编译快些-注意服务器核数)
    6、安装:./make.sh install 
    7、记录默认安装位置:
    /usr/include/fastcommon  common_define.h
    8、(cd ~/downloads)下载FastDFS压缩包:wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz 
    9、解压:tar xf V5.11.tar.gz 
    10、进入解压目录内:cd fastdfs-5.11
    11、编译:./make.sh  -j 4  (4核方式编译快些)
    12、安装:./make.sh install 
    13、记录默认安装位置:
    /usr/include/fastdfs    ../common/fastdfs_define.h
    14、进入目录:cd /etc/fdfs/ ,查看是否有4个文件:ll (没有重新编译安装 cd ~/downloads,第10步)
    15、进入目录:cd /etc/fdfs/ ,复制文件: 
    cp client.conf.sample client.conf 
    cp storage.conf.sample storage.conf 
    cp tracker.conf.sample tracker.conf 
    cp storage_ids.conf.sample storage_ids.conf 
    16、创建tracker基础数据目录,即base_path对应的目录 
    在家目录(cd ~)创建:mkdir -p /root/data/fastdfs/tracker 
    17、复制tracker基础数据目录路径:cd data/fastdfs/tracker ,pwd查看复制:/root/data/fastdfs/tracker 
    18、回到cd /etc/fdfs/,修改配置 vim tracker.conf :
    port=22122 (默认)
    base_path=/root/data/fastdfs/tracker 
    http.server_port=80 
    19、如果有防火墙:
    开启端口:firewall-cmd --permanent --zone=public --add-port=22122/tcp 
    重启防火墙:firewall-cmd --reload 
    查看防火墙:firewall-cmd --list-port 
    20、fdfs命令可以在cd /usr/bin下 fdfs_  tab键查看
    21、启动Tracker,初次成功启动,会在 /root/data/fastdfs/tracker (配置的base_path)下创建 data、logs 两个目录,可查看是否报错
    启动命令:service fdfs_trackerd start 
    关闭Tracker命令: service fdfs_trackerd stop 
    查看端口:netstat -lntp | grep 22122 或 ps -ef | grep trakcer
    22、设置Tracker开机启动 :chkconfig --add fdfs_trackerd 
    查看开机启动任务:chkconfig --list  ,
    23、创建存储器数据和日志目录地址文件夹:mkdir -p /root/data/fastdfs/storage
    24、进入 cd /etc/fdfs,修改配置:vim storage.conf :
    指定此 storage server 所在组(卷),根据自身需求更改: 
    group_name=group1 
    指定storage server 服务端口,默认即可: 
    port=23000 
    心跳间隔时间,单位为秒 (这里是指主动向 tracker server 发送心跳),默认即可: 
    heart_beat_interval=30 
    Storage 数据和日志目录地址,该目录必须手动创建: 
    base_path=/root/data/fastdfs/storage
    存放文件时 storage server 支持多个路径。这里配置存放文件的基路径数目,通常只配一个目录。 
    store_path_count=1 
    逐一配置 store_path_count 个路径,索引号基于 0。如果不配置 store_path0,那它就和 base_path 对应的路径一样。 
    store_path0=/root/data/fastdfs/storage
    FastDFS 存储文件时,采用了两级目录。这里配置存放文件的目录个数。 如果本参数只为 N(如: 256),那么 storage server 在初次运行时,会在 store_path 下自动创建 N * N 个存放文件的子目录。 
    subdir_count_per_path=256 
    tracker_server 的列表 ,会主动连接 tracker_server,有多个 tracker server 时,每个 tracker server 写一行。 
    tracker_server=rootTracker:22122  (如果这里配置需要hosts也配置,也可配置IP:如192.168.1.104)
    允许系统同步的时间段 (默认是全天) 。一般用于避免高峰同步产生一些问题而设定。 
    sync_start_time=00:00 
    sync_end_time=23:59 
    访问端口 :http.server_port=80
    25、(如果有)防火墙中打开存储器端口
    开启端口:firewall-cmd --permanent --zone=public --add-port=23000/tcp
    重启防火墙:firewall-cmd --reload 
    查看防火墙:firewall-cmd --list-port 
    26、(默认IP)如果上面tracker地址配置的不是ip地址,要修改host文件,使之与ip对应: 
    编辑:vim /etc/hosts :
    添加如下内容,下面ip为虚拟机ip: 
    192.168.1.104 rootTracker
    27、启动Storage,启动Storage前确保Tracker是启动的。初次启动成功,会在 /root/data/fastdfs/storage 目录下创建 data、 logs 两个目录,该目录下有server信息。 
    启动命令:service fdfs_storaged start
    查看 Storage 是否成功启动,23000 端口正在被监听,则 Storage 启动成功。 
    netstat -ntlp | grep 23000 或  lsof -i:23000 或 netstat -ntlp | grep fdfs 没有看到信息就是有问题
    关闭 Storage:service fdfs_storaged stop
    查看Storage和Tracker是否在通信: fdfs_monitor /etc/fdfs/storage.conf  , 如果看到 server id count:0就是有问题,看文件是否漏和重启
    在打印结果中,看到 group count: 1 ,表示正在通信。
    设置 Storage 开机启动:chkconfig fdfs_storaged on
    查看开机启动任务:chkconfig --list  , 
    可以看到在 /root/data/fastdfs/storage/data 目录下,创建了N*N个子目录,用于存储文件。
    如果出现问题,查看进程 netstat -lntp | grep 22122 ,杀掉进程重启:kill -9 进程ID;
    注意:要先启动tracker服务,再启动storage服务,最后查看是否都有data和logs文件夹
    查看是否通讯:fdfs_monitor /etc/fdfs/storage.conf
    28、创建文件夹:mkdir -p /root/data/fastdfs/client,
    打开:vim /etc/fdfs/client.conf ,编辑:
    Client 的数据和日志目录,该目录必须手动创建: 
    base_path=/root/data/fastdfs/client
    Tracker端口 
    tracker_server=rootTracker:22122 (使用IP如:192.168.1.104:22122)
    Http访问端口 
    http.tracker_server_port=80  (默认)
    29、测试是否成功,上传试试看是否返回路径
    先手动拖一张图片到linux,
    上传命令(在图片位置cd ~):fdfs_upload_file /etc/fdfs/client.conf /root/02.jpg 
    返回路径就表示成功!
    路径类似:group1/M00/00/00/wKgBaFv8ELmACTGXAAIWRj8eKZQ239.jpg,返回的文件ID由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成。
    查看文件cd /root/data/fastdfs/storage/data/00/00
    
    二、安装Nginx,因为图片上传还需要容器查看(FastDFS还不支持http访问文件)
    1、前言:Nginx安装环境准备工作
    1) gcc准备:安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,查看是否安装gcc: 
    yum list installed | grep gcc 
    如果没有gcc环境,需要安装gcc和gcc-c++ ,执行命令安装: 
    yum -y install gcc gcc-c++ 
    2) PCRE准备:PCRE是一个Perl库,包括 Perl 兼容的正则表达式库。nginx的http模块使用PCRE来解析正则表达式,所以需要在Linux上安装PCRE库,执行安装命令: 
    yum -y install pcre pcre-devel
    3) zlib准备:zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库,运行安装命令: 
    yum -y install zlib zlib-devel
    4) openssl准备:OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 
    nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。运行安装命令: 
    yum -y install openssl openssl-devel
    2、下载Nginx(cd ~/downloads):wget https://nginx.org/download/nginx-1.14.0.tar.gz 
    3、解压:tar -xf nginx-1.14.0.tar.gz 
    4、进入解压目录编译安装: 
    进入目录:cd nginx-1.14.0
    配置Nginx启用 openssl密码库,并使用当前用户启动nginx,其余默认即可 
    命令:./configure --with-http_ssl_module --user=root
    5、编译 Nginx: make -j 4
    6、安装:make install 
    7、创建软链接(类似快捷方式),并启动 Nginx,设置开机启动:
    查看:cd /usr/local/nginx/
    命令:ln -s /usr/local/nginx/sbin/nginx /usr/bin/
    启动命令:nginx
    关闭Nginx:nginx -s stop 
    重启Nginx:nginx -s reload 
    查看是否启动成功: netstat -anp | grep nginx 或者 ps -ef | grep nginx
    设置nginx开机启动 :vim /etc/rc.local 
    最后面加一行: 
    /usr/local/nginx/sbin/nginx
    然后更改文件权限 
    chmod 744 /etc/rc.d/rc.local
    8、查看nginx的版本及模块 :nginx -V 
    9、防火墙开启端口
    开启端口:firewall-cmd --permanent --zone=public --add-port=23000/tcp
    重启防火墙:firewall-cmd --reload 
    查看防火墙:firewall-cmd --list-port 
    10、修改配置
    1)修改nginx.conf配置 
    编辑文件:vim /usr/local/nginx/conf/nginx.conf ,内容如下:
    #修改nginx启动用户,和系统启动用户一致,nginx默认启动用户为nobody,在nginx安装的时候已经指定为root用户
    user  root;
    worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        server {
        #侦听端口
            listen       80;
            server_name  localhost;
          #修改映射地址,将http中的地址/group1/M00/映射为系统实际地址/root/data/fastdfs/storage/data/
          location /group1/M00/ { 
             alias /root/data/fastdfs/storage/data/; 
          }
            location / {
                root   html;
                index  index.html index.htm;
              }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
              }
        }
    }
    内容结束
    2)重启nginx:nginx -s reload 
    3)访问文件 (root:192.168.1.104) : 
    方式一:http://192.168.1.104:80/group1/M00/00/00/wKgBaFv8ELmACTGXAAIWRj8eKZQ239.jpg
    注意这里可能出现问题:Centos7自带的最初版火狐浏览器解析上面地址的时候可能解析为一个目录,即:http://roottracker:8081/group1/M00/00/00/wKgBaFv8ELmACTGXAAIWRj8eKZQ239.jpg/这种形式,导致访问不到文件,问题出在wKhphFrhIVuADqfzAASB-wpUaac425.jpg这个位置,把文件和访问地址的后缀名改为.jpeg就可以访问到,具体原因不太清楚,不过
    谷歌浏览器或者更新后的火狐浏览器又不会出现问题,所以本地谷歌浏览器测试
    方式二:wget http://192.168.1.104:80/group1/M00/00/00/wKgBaFv8ELmACTGXAAIWRj8eKZQ239.jpg,可以获取到文件则nginx配置成功。
    
    三、FastDFS 配置 Nginx 模块
    前言: fastdfs-nginx-module 模块说明
      FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储, 但是同组存储服务器之间需要进行文件复制, 数据同步有延迟的问题。 
      假设 Tracker 服务器将文件上传到了 Stroage1,上传成功后文件 ID已经返回给客户端。此时 FastDFS 存储集群机制会将这个文件同步到同组存储 Stroage2,在文件还没有复制完成的情况下,客户端如果用这个文件 ID 在 Stroage2 上取文件,就会出现文件无法访问的错误。而 fastdfs-nginx-module 可以重定向文件链接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。
    
    安装配置fastdfs-nginx-module模块
    先安装解压zip工具:yum install unzip -y
    1) 下载 fastdfs-nginx-module 
    wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip 
    2) 解压 
    unzip master.zip 
    3) 停止nginx服务 
    nginx -s stop 
    4) nginx添加fastdfs-nginx-module模块重新编译安装 
    进入nginx解压目录 
    cd nginx-1.14.0/ 
    nginx配置fastdfs-nginx-module模块 (注意下面在同一个文件夹 /~/downloads 下的)
    ./configure --with-http_ssl_module --user=root --add-module=../fastdfs-nginx-module-master/src/ 
    编译 :make -j 4   (直接编译会报错,需要改配置,大坑)
    改配置(在目录nginx-1.14.0/):cd ../fastdfs-nginx-module-master/src/
    编辑:vim config ,内容:
    修改 ngx_module_incs="/usr/include/fastcommon /usr/include/fastdfs"
    修改 CORE_INCS="$CORE_INCS /usr/include/fastcommon /usr/include/fastdfs"
    保存,回到目录nginx-1.14.0/:cd ~/downloads/nginx-1.14.0/ ,
    重新执行编译:./configure --with-http_ssl_module --user=root --add-module=../fastdfs-nginx-module-master/src/ 
    重新编译:make -j 4
    安装:make install
    5) 启动Nginx:nginx,查看Nginx的模块:nginx -V 
    若有下面配置则证明模块添加成功: 
    configure arguments: --add-module=../fastdfs-nginx-module-master/src/ 
    6) 修改配置文件1 
    复制 fastdfs-nginx-module 源码中的配置文件mod_fastdfs.conf,并修改配置 
    cp ~/downloads/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/ 
    编辑mod_fastdfs.conf文件: 
    vim /etc/fdfs/mod_fastdfs.conf 
    修改如下配置,其余默认即可:
    #连接超时时间(留默认)
    connect_timeout=15
    # TrackerServer的IP和端口
    tracker_server=rootTracker:22122 (192.168.1.104:22122)
    # StorageServer端口
    storage_server_port=23000  (默认)
    # 如果文件ID的uri中包含group分组信息,则要设置为true
    url_have_group_name=true  
    # Storage配置的store_path0路径,必须和storage.conf中的一致
    store_path0=/root/data/fastdfs/storage
    7) 修改配置文件2 
    复制 FastDFS 源码中的配置文件到/etc/fdfs 目录: 
    进入目录:cd ~/downloads/fastdfs-5.11/conf/ 
    复制:cp anti-steal.jpg http.conf mime.types /etc/fdfs/ 
    8) 修改配置文件3 
    修改nginx的配置文件nginx.conf,修改下面配置,其它不变: 
    进入:vim /usr/local/nginx/conf/nginx.conf ,内容:
    # 注释了下面的
    #location /group1/M00/ { 
        #alias /root/data/fastdfs/storage/data/; 
    #}
    # 添加fastdfs-nginx-module模块
    location ~/group([0-9])/M00/ {      
        ngx_fastdfs_module;
    }
    注意: 
    1) nginx.conf 配置中的 listen 80端口值要与/etc/fdfs/storage.conf中的http.server_port=80 (前面配置为80了)端口值相对应;如果改成其它端口,则需要统一,同时在防火墙中打开该端口。 
    2) location 的配置,在集群模式中,有多个group,所以这里以正则的方式配置,如果是单一节点可以只配置指定group。 
    9) 启动Nginx:nginx
    打印类似如下信息,则配置成功: 
    ngx_http_fastdfs_set pid=119826 
    10) http访问能获取到文件,则nginx配置成功;注意和前面中直接使用nginx路由访问不同的是,这里配置 fastdfs-nginx-module 模块,可以重定向文件链接到源服务器取文件。 root:192.168.1.104
    http://192.168.1.104:80/group1/M00/00/00/wKgBaFv8ELmACTGXAAIWRj8eKZQ239.jpg 
    wget http://root:80/group1/M00/00/00/wKgBaFv8ELmACTGXAAIWRj8eKZQ239.jpg 
    
    配置更多group(集群):
    启动多个tracker和storaget服务器,配置多个server和多个path,
    进入:vim /etc/fdfs/storage.conf ,如:
    tracker_server=192.168.1.104:22122
    tracker_server=192.168.1.105:22122
    store_path0=/root/data/fastdfs/storage
    store_path1=/root/data/fastdfs/storage2
    ...
    
    至此FastDns搭建完成
    
    想要安全访问,加一个防盗链,只允许本网站访问和下载
    
    具体做法!
    
    
    测试:http://192.168.1.104:80/group1/M00/00/00/wKgBaFv8ELmACTGXAAIWRj8eKZQ239.jpg
    http://192.168.1.104/group1/M00/00/00/wKgBaFv9AOaAKdyIAAG_cF_tWps097.zip
    http://192.168.1.104/group1/M00/00/00/wKgBaFv9Ad-Abep_AAUtbU7xcws013.pdf
    http://192.168.1.104/group1/M00/00/00/wKgBaFv9DoaAHaZjAAAtaHzd49450.docx
    

    java操作文件

    https://blog.csdn.net/qq_37902949/article/details/85052285

  • 相关阅读:
    【转载】总结一下Android中主题(Theme)的正确玩法
    Android获唯一标识
    AS问题解决系列3—iCCP: Not recognizing known sRGB profile
    AS问题解决系列1—Unable to execute DX错误
    Android Studio Error2
    Android Error
    NAT简单介绍
    redis缓存工具Jedis进行跨jvm加锁(分布式应用)--不幸暂弃用--能够做第三方锁使用
    工作总结1.怎样高效跟客户确定需求?
    Sqoop处理Clob与Blob字段
  • 原文地址:https://www.cnblogs.com/qq1995/p/10358977.html
Copyright © 2011-2022 走看看