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

  • 相关阅读:
    将Nginx添加到windows服务中
    springboot使用redis管理session
    GIT常用命令
    阻止360、谷歌浏览器表单自动填充
    谈谈对Spring IOC的理解
    同一个Nginx服务器同一端口配置多个代理服务
    LeetCode 653. Two Sum IV
    109. Convert Sorted List to Binary Search Tree(根据有序链表构造平衡的二叉查找树)
    108. Convert Sorted Array to Binary Search Tree(从有序数组中构造平衡的BST)
    LeetCode 236. Lowest Common Ancestor of a Binary Tree(二叉树求两点LCA)
  • 原文地址:https://www.cnblogs.com/qq1995/p/10358977.html
Copyright © 2011-2022 走看看