*FastDFS图片服务器搭建准备:
1.需要libfastcommon安装包 选择最新稳定版(libfastcommon-1.0.36.tar.gz)
2.需要FastDFS安装包 选择最新稳定版(fastdfs-5.11.tar.gz)
3.需要Nginx安装包 选择最新稳定版(nginx-1.12.2.tar.gz)
4.需要fastdfs-nginx-modual模块安装包 选择最新版(fastdfs-nginx-module-master.zip 版本1.20,对应fastdfs-5.11)
注意:--------fastdfs-nginx-module-master.zip版本1.19对应fastdfs-5.11---------
-------------- 常见的fastdfs-nginx-module_v1.16.tar.gz在这里不推荐安装,安装过程有可能出问题 --------------------
*安装依赖环境*:命令安装:
 gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc。 
命令 yum -y install gcc gcc-c++
 PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装
pcre库。 
命令:yum install -y pcre pcre-devel
 zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。 
命令:yum install -y zlib zlib-devel 
 openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
命令:yum install -y openssl openssl-devel
 libevent
命令:yum -y install libevent
1.安装fastdfs
  1.1上传依赖包(xftp上传):
    1.1.1 libfastcommon-1.0.36.tar.gz
    1.1.2 fastdfs-5.11.tar.gz
    1.1.3 nginx-1.12.2.tar.gz
    1.1.4 fastdfs-nginx-module-master.zip --版本1.20
  1.2 安装libfastcommon-1.0.36.tar.gz工具包
    1.2.1解压libfastcommon-1.0.36.tar.gz 
    命令:tar zxvf libfastcommon-1.0.36.tar.gz 
完成之后会在libfastcommon-1.0.36文件夹下多出一个make.sh文件,供编译使用
    1.2.2编译libfastcommon-1.0.36 
    命令:./make.sh 
    1.2.3安装libfastcommon-1.0.36
命令:./make.sh install 
安装完成之后会在 /usr/lib64和/usr/lib下生成 libfastcommon.so;如果是比较低的版本只会在lib64下面生成;如果是32位系统就应该copy一份
libfastcommon.so到lib文件夹下(先进入lib64文件夹执行命令:cp libfastcommon.so ../lib)
  1.3安装fastdfs-5.11.tar.gz
    1.3.1解压fastdfs-5.11.tar.gz
    命令:tar zxvf fastdfs-5.11.tar.gz
解压完成之后会解压到astdfs-5.11文件夹下,进入之后会看到make.sh文件,供编译使用
    1.3.2编译astdfs-5.11
    命令:./make.sh
    1.3.3安装FastDFS
    命令:./make.sh install
    1.3.4如果没有报错那么就成功了安装log中会提示astdfs-5.11安装到了/etc/fdfs目录下,查看安装目录
    命令:ll /etc/fdfs/
会看到client.conf.sample,storage.conf.sample,tracker.conf.sample这三个文件
我们需要把这三个示例文件复制一份,去掉.sample作为后续配置文件
命令:cp client.conf.sample client.conf
命令:cp storage.conf.sample storage.conf
命令:cp tracker.conf.sample tracker.conf
而且安装完成之后会在/usr/bin文件下面多出一些fdfs_*的命令,进入查看
命令:ll fdfs_*
-----------------显示如下--------------------------------------------
-rwxr-xr-x. 1 root root 314463 Apr 1 14:07 fdfs_appender_test
-rwxr-xr-x. 1 root root 310144 Apr 1 14:07 fdfs_appender_test1
-rwxr-xr-x. 1 root root 297016 Apr 1 14:07 fdfs_append_file
-rwxr-xr-x. 1 root root 296716 Apr 1 14:07 fdfs_crc32
-rwxr-xr-x. 1 root root 297083 Apr 1 14:07 fdfs_delete_file
-rwxr-xr-x. 1 root root 297810 Apr 1 14:07 fdfs_download_file
-rwxr-xr-x. 1 root root 297392 Apr 1 14:07 fdfs_file_info
-rwxr-xr-x. 1 root root 315309 Apr 1 14:07 fdfs_monitor
-rwxr-xr-x. 1 root root 320303 Apr 1 14:07 fdfs_test
-rwxr-xr-x. 1 root root 319520 Apr 1 14:07 fdfs_test1
-rwxr-xr-x. 1 root root 298002 Apr 1 14:07 fdfs_upload_appender
-rwxr-xr-x. 1 root root 303126 Apr 1 14:07 fdfs_upload_file
--------------------------------------------------------------------- 
  1.4安装tracker服务
    1.4.1配置tracker
      1.4.1.1首选使用mkdir -p递归创建目录命令,创建了/usr/local/fast/fastdfs-5.11/data/tracker目录来保存tracker的data和log 根据个人习惯
      命令:mkdir -p /usr/local/fast/fastdfs-5.11/data/tracke
      1.4.1.2修改tracker.conf
      命令:vim /etc/fdfs/tracker.conf
      打开后重点关注下面4个配置:
      1.disabled=false 
      2.port=22122 #默认端口号 
      3.base_path=/usr/local/fast/fastdfs-5.11/data/tracke #我刚刚创建的目录 
      4.http.server_port=8080 #默认端口是8080
----------------------------------------保存退出-----------------------------------------------
      1.4.1.3给firewalld添加开放tracker.conf配置文件中的22122和8080两个端口。在firewall正常运行的情况下输入以下命令:
      命令:firewall-cmd --zone=public --add-port=8080/tcp --permanent #添加8080端口
      命令:firewall-cmd --zone=public --add-port=22122/tcp --permanent #添加22122端口 
      ------------显示success的话就代表已成功加入,重启firewalld既可-----------------------
      如果想检查相应端口是否开启,先重启firewalld
      命令:systemctl restart firewalld #重启firewalld,要不然下一步查询会返回NO
      命令:firewall-cmd --query-port=8080/tcp --zone=public #查询8080端口是否开启
      命令:firewall-cmd --query-port=22122/tcp --zone=public #查询22122端口是否开启
      ------------返回no既未开启,显示Yes为已开启-----------------------------------------
      1.4.1.4保存配置后启动tracker,命令如下
      命令:service fdfs_trackerd start
      成功后可以看到: Starting fdfs_trackerd (via systemctl): [ OK ]
      并且,发现刚刚创建的目录中多了data和log两个目录,命令查看
      命令:ll /usr/local/fast/fastdfs-5.11/data/tracke
      1.4.1.5设置tracker开机启动
      命令:echo "service fdfs_trackerd start" |tee -a /etc/rc.d/rc.local
      1.4.1.6查看tracker的端口监听情况
      命令:netstat -unltp|grep fdfs
      ---------------------------------------------------------------------------------
      tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN 70382/fdfs_trackerd
      --------------------------------------------------------------------------------- 
  1.5安装storage服务
    1.5.1配置storage
      1.5.1.1首选使用mkdir -p递归创建目录命令,创建了/usr/local/fast/fastdfs-5.11/data/storage/0目录在/usr/local/fast/fastdfs-5.11/data/storage
      下保存storage的data和log ,/usr/local/fast/fastdfs-5.11/data/storage/0下保图片文件
      命令:mkdir -p /usr/local/fast/fastdfs-5.11/data/storage/0
    1.5.2修改storage.conf
      命令:vim /etc/fdfs/storage.conf
      打开后重点关注下面9个配置:
      1.disabled=false 
      2.group_name=group1 #组名,根据实际情况修改 
      3.port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致 
      4.base_path=/usr/local/fast/fastdfs-5.11/data/storage #设置storage数据文件和日志目录 
      5.store_path_count=1 #存储路径个数,需要和store_path个数匹配 
      6.store_path0=/usr/local/fast/fastdfs-5.11/data/storage/0 #实际图片文件存储路径 
      7.#store_path1=/home/yuqing/fastdfs2 #如果挂载了不同的磁盘就可以配置store_path1 .. 等等
      8.tracker_server=192.168.153.201:22122 #我CentOS7的ip地址 
      9.http.server_port=8888 #设置 http 端口号,默认8888
      ----------------------------------------保存退出----------------------------------------------
    1.5.3给firewalld添加开放storage.conf配置文件中的23000和8888两个端口。在firewall正常运行的情况下输入以下命令:
    命令:firewall-cmd --zone=public --add-port=23000/tcp --permanent #添加23000端口
    命令:firewall-cmd --zone=public --add-port=8888/tcp --permanent #添加8888端口 
      ------------显示success的话就代表已成功加入,重启firewalld既可-----------------------
    如果想检查相应端口是否开启,先重启firewalld
    命令:systemctl restart firewalld #重启firewalld,要不然下一步查询会返回NO
    命令:firewall-cmd --query-port=23000/tcp --zone=public #查询23000端口是否开启
    命令:firewall-cmd --query-port=8888/tcp --zone=public #查询8888端口是否开启
      ------------返回no既未开启,显示Yes为已开启-----------------------------------------
    1.5.4保存配置后启动storage,命令如下
    命令:service fdfs_storaged start
    成功后可以看到: Starting fdfs_storaged (via systemctl): [ OK ]
    并且,发现刚刚创建的目录/usr/local/fast/fastdfs-5.11/data/storage 下多了data和log两个目录。
(重点注意:/usr/local/fast/fastdfs-5.11/data/storage/0下多了个data,在data下有很多二进制文件夹,用来存储图片文件)
    命令:ll /usr/local/fast/fastdfs-5.11/data/storage/0/data
    1.5.5设置storage开机启动
    命令:echo "service fdfs_storaged start" |tee -a /etc/rc.d/rc.local
    1.5.6查看storage的端口监听情况
    命令:netstat -unltp|grep fdfs
    ---------------------------------------------------------------------------------
    tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN 2231/fdfs_trackerd
    tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN 2323/fdfs_storaged
    ---------------------------------------------------------------------------------
  1.6确定一下,storage是否注册到了tracker中去
    命令/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
    成功后可以看到其中有一下字样: 
    id = 192.168.153.201
    ip_addr = 192.168.153.201 ACTIVE
  1.7测试上传:
    1.7.1同样的,需要修改客户端的配置文件:
    命令:vim /etc/fdfs/client.conf
    打开后重点关注下面3个配置:
    1.base_path=/usr/local/fast/fastdfs-5.11/data/tracker #tracker服务器文件路径
    2.tracker_server=192.168.153.201:22122 #tracker服务器IP地址和端口号
    3.http.tracker_server_port=8080 #tracker 服务器的 http端口号,必须和tracker的设置对应起来
----------------------------------------保存退出---------------------------------------------------------------------------------
    1.7.2上传图片:
      1.7.2.1输入上传图片命令:
      命令: /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /图片路径/1.png #这后面放的是图片的位置
      成功后会返回图片的路径:group1/M00/00/00/wKiZyVrGEhmAWotNAAQedSwYknA415_big.png
--------------------------------------------------------------------------------------------------------------------------------
    组名:group1 
    磁盘:M00 
    目录:00/00 
    文件名称:wKiZyVrGEhmAWotNAAQedSwYknA415_big.jpg
--------------------------------------------------------------------------------------------------------------------------------
      1.7.2.2我们上传的图片会被上传到我们创建的/usr/local/fast/fastdfs-5.11/data/storage/0/data/00/00目录下,让我们去看看
      应该会有:wKiZyVrGEhmAWotNAAQedSwYknA415_big.jpg
      我们仔细看一下,实际文件存储路径下有创建好的多级目录。data下有256个1级目录,每级目录下又有256个2级子目录,总共65536个文件,新写的文件会以
      hash的方式被路由到其中某个子目录下,然后将文件数据直接作为一个本地文件存储到该目录中。
---------------------------------------------------------------------------------------------------------------------------------
  1.8访问上传的图片: 
    1.8.1如果要访问刚上传的图片,我们得需要结合nginx来实现原因如下:
    1.我们在使用FastDFS部署一个分布式文件系统的时候,通过FastDFS的客户端API来进行文件的上传、下载、删除等操作。同时通过FastDFS的HTTP服务器来提供HTTP
   服务。但是FastDFS的HTTP服务较为简单,无法提供负载均衡等高性能的服务,所以FastDFS的开发者——淘宝的架构师余庆同学,为我们提供了Nginx上使用的FastDFS
   模块(也可以叫FastDFS的Nginx模块)。
    2.FastDFS通过Tracker服务器,将文件放在Storage服务器存储,但是同组之间的服务器需要复制文件,有延迟的问题.假设Tracker服务器将文件上传到了172.20.132.57,
   文件ID已经返回客户端,这时,后台会将这个文件复制到172.20.132.57,如果复制没有完成,客户端就用这个ID在172.20.132.57取文件,肯定会出现错误。这个
   fastdfs-nginx-module可以重定向连接到源服务器取文件,避免客户端由于复制延迟的问题,出现错误。 正是这样,FastDFS需要结合nginx,所以取消原来对HTTP的
   直接支持。
------------------------------------------------------------------------------------------------------------------------------------
    1.8.2安装nginx并添加fastdfs-nginx-module
      1.8.2.1解压nginx-1.12.2.tar.gz,和fastdfs-nginx-module-master.zip
      命令:tar -zxvf nginx-1.12.2.tar.gz
      命令:unzip fastdfs-nginx-module-master.zip
      1.8.2.2解压后进入nginx-1.12.2目录编译安装nginx,并添加fastdfs-nginx-module:fastdfs-nginx-module-master模块
      命令:./configure --prefix=/usr/local/nginx --add-module=../fastdfs-nginx-module-master/src #解压后fastdfs-nginx-module所在的位置
      (执行完之后会在nginx-1.12.2目录下生成Makefile文件,为下一步编译使用)
      1.8.2.2 编译:
      命令:make
      1.8.2.3 安装:
      命令:make install 
      1.8.2.4 nginx的安装目录是/usr/local/nginx,安装成功后查看
      命令:ls /usr/local/nginx/
      应该会有:conf html logs sbin 这几个文件夹,其中nginx.conf在/usr/local/nginx/conf目录下
      1.8.2.5 修改nginx.conf配置:
      命令:vim /etc/fdfs/tracker.conf
        1.8.2.5.1跟server节点评级配置反向代理fdfs_group1
        upstream fdfs_group1 { #配置反向代理fdfs_group1
          server 127.0.0.1:9991; #监听 9991
        }
        1.8.2.5.2打开后新添加一个如下server节点:
        server {
            listen 9991;
            server_name localhost; 
            location / { #9991端口拦截的URL:9991/
            root html;
            index index.html index.htm;
             } 
        location ~/group1/M00 { #重点:9991端口拦截的请求路径
            root /usr/local/fast/fastdfs-5.11/data/storage/0/data; #重点:图片文件存储路径
            ngx_fastdfs_module; #nginx-fastdfs-modual的名字:ngx_fastdfs_module
             } #只要不在它的confrgure中改动,不管那个版本都叫:
        error_page 500 502 503 504 /50x.html; #ngx_fastdfs_module
        location = /50x.html {
        root html;
             }
          }
        1.8.2.5.3编辑Nginx原有80端口的server节点,添加反向代理的URL
         server {
              listen 80;
              server_name localhost;
          location /group1/M00 { #80端口拦截的URL:80/group1/M00
          proxy_pass http://fdfs_group1; #反向代理的URL
              }
          error_page 500 502 503 504 /50x.html;
          location = /50x.html {
          root html;
              }
            }
----------------------------------------保存退出-------------------------------------------------
        1.8.2.5.4在此给firewalld添加开放nginx.conf配置文件中的9991端口。在firewall正常运行的情况下输入以下命令:
        命令:firewall-cmd --zone=public --add-port=9991/tcp --permanent #添加9991端口 
        ------------显示success的话就代表已成功加入,重启firewalld既可-----------------------
        如果想检查相应端口是否开启,先重启firewalld
        命令:systemctl restart firewalld #重启firewalld,要不然下一步查询会返回NO
        命令:firewall-cmd --query-port=9991/tcp --zone=public #查询9991端口是否开启
        ------------返回no既未开启,显示Yes为已开启-----------------------------------------
        1.8.2.5.5重启nginx
        命令:/usr/local/nginx/sbin/nginx -s reload
        1.8.2.5.6现在我们再去访问一下,原来我们上传过的文件:
        http://192.168.153.201/group1/M00/00/00/wKiZyVrQkrKAfBRmAAQedSwYknA095.png
        或者:
        http://192.168.153.201:9991/group1/wKiZyVrQkrKAfBRmAAQedSwYknA095.png
        或者:
        http://192.168.153.201:80/group1/M00/00/00/wKiZyVrQkrKAfBRmAAQedSwYknA095.png
--------------------------------------------------------测试成功-----------------------------------------------------------

FastDFS图片服务器搭建的更多相关文章

  1. 虚拟机上图片服务器搭建(FastDFS+nginx)

    文件服务器 0.提前建好需要的文件夹(/home/fastdfs) /home/fastdfs/tracker /home/fastdfs/storage /home/fastdfs/storage/ ...

  2. java连接Fastdfs图片服务器上传失败的解决方法

    照着视频上做,但是却连接不了虚拟机linux上的图片服务器,估计是linux防火墙的问题(这个实在是神烦,前面有好几次连接不了都是因为linux防火墙),果不其然,关闭即可. Linux关闭防火墙的命 ...

  3. FastDFS图片服务器(分布式文件系统)学习。

    参考:https://blog.csdn.net/hiqingtian/article/details/79413471 https://blog.csdn.net/sinat_40399893/ar ...

  4. [转帖]FastDFS图片服务器单机安装步骤

    FastDFS图片服务器单机安装步骤 https://www.cnblogs.com/yuesf/p/11847103.html 前面已经讲 一张图秒懂微服务的网络架构,通过此文章可以了解FastDF ...

  5. FastDFS分布式图片服务器搭建

    一:Fastdfs简介 1. 什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制, 充分考虑了冗余备份.负载均衡.线性扩容等机制,并注 ...

  6. fastdfs 图片服务器 使用java端作为客户端上传图片

    之前有说道搭建fastdfs作为图片服务器,但是没有说明如何真正在代码里调用,那么今天大致讲一下,如何使用java客户端进行上传 首先你得要有一个客户端,导入到eclipse中即可 git地址如下: ...

  7. Zimg—轻量级图片服务器搭建利器

    在一个互联网应用中,图片扮演着越来越重要的角色.有稳定的可扩展的图片存储服务器就显得尤为的重要,云厂商们提供了便利的图片存储服务,花钱就可以解决了.这里简单介绍一个开源的一个分布式图片存储服务器--z ...

  8. FastDFS图片服务器java后台的简单调用

    工具类: package com.liveyc.common.fdfs; import org.apache.commons.io.FilenameUtils; import org.csource. ...

  9. 分享知识-快乐自己:FastDFS 图片服务器的搭建

    使用一台虚拟机来模拟,只有一个Tracker.一个Storage服务,配置nginx访问图片. 1):安装依赖包 yum -y install zlib zlib-devel pcre pcre-de ...

随机推荐

  1. DDD中 与Dto搭配的AutoMapper插件,摘自《NET企业级应用架构设计》

    AutoMapper插件 实现了 DTO与Model的互相映射.

  2. qml与c++混合编程

    QML 与 C++ 混合编程内容:1. QML 扩展2. C++ 与 QML 交互3. 开发时要尽量避免使用的 QML 元素4. demo 讲解5. QML 语法C++ 与 QML 的交互是通过注册 ...

  3. tp框架报错 Namespace declaration statement has to be the very first statement in the script

    Namespace declaration statement has to be the very first statement in the script tp框架报这个错误,错误行数就是nam ...

  4. HAVING使用子查询

    HAVING使用子查询     //查询各部门平均工资,显示平均工资大于   //公司整体平均工资的记录   select deptno,avg(sal)   from emp   group by ...

  5. ssm框架下上传图片及其他信息

    先引入这两个包: <dependency> <groupId>commons-fileupload</groupId> <artifactId>comm ...

  6. ioctl.h 分析

    ioctl.h 分析 我自己画了个解析图...不要嫌弃丑啊.. . 哈哈 type The magic number. Just choose one number (after consulting ...

  7. bzoj1019: [SHOI2008]汉诺塔(动态规划)

    1019: [SHOI2008]汉诺塔 题目:传送门 简要题意: 和经典的汉诺塔问题区别不大,但是题目规定了一个移动时的优先级: 如果当前要从A柱子移动,但是A到C的优先级比A到B的优先级大的话,那就 ...

  8. phpstorm 或 webstorm 设置打开多个项目,多个项目并存。

    File -> settings -> Directories -> Add Content Root 中添加你当前的工程目录. 这样就可以节省内存了.之前用一个打开php项目,一个 ...

  9. xBIM 基础07 创建WebBIM文件

    系列目录    [已更新最新开发文章,点击查看详细]  xBIM项目提供了一个IFC文件的Web查看器.当你想把IFC转换成紧凑的WexBIM时,需要 xBIM Essentials 和 xBIM G ...

  10. Java多线程编程模式实战指南(一):Active Object模式--转载

    本文由黄文海首次发布在infoq中文站上:http://www.infoq.com/cn/articles/Java-multithreaded-programming-mode-active-obj ...