1,安装FastDFS之前,先安装libevent工具包。

yum -y install libevent

2,安装libfastcommonV1.0.7工具包。有可能找到新版本的zip压缩包:libfastcommon-master.zip

上传到linux后使用unzip命令就能解压。(前提是安装了zip和unzip工具:

    yum 安装

    yum install -y unzip zip

解压之后有个make.sh的执行文件:执行./make.sh 和 ./make.sh install

如果是新版本的,就不会在/usr中生成lib64的目录,如果是旧版本的就会生成lib64的目录,那么将这个目录中的(/usr/lib64/libfastcommon.so)文件向/usr/lib/下复制一份。

3,上传fastdfs-5.11.tar.gz并安装tracker服务。

1)解压缩(tar -zxf)

2)./make.sh

3)./make.sh install

安装后在/usr/bin/目录下有以fdfs开头的文件都是编译出来的。

配置文件都放到/etc/fdfs文件夹,这些都是sample(样例)。

4)把解压后/root/applications/fastdfs/fastdfs-5.11/conf目录下的所有的配置文件都复制到/etc/fdfs下。

5)配置tracker服务。修改/etc/fdfs/tracker.conf文件。

端口port:22122不需要改。

测试:

  启动tracker server:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

  重启:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

  查看是否有相应的进程:ps aux | grep tracker

  启动之后在配置的目录中就会新建文件夹:(如果没有提前建立相应的文件夹会报错)

  

6)配置storage服务(安装报错-是fastdfs版本问题,同时注意libfastcommon版本要对)

如果是在不同的服务器安装,第四步的1)到4)需要重新执行。

如果有多个tracker_server,就增加ip

启动tracker(参考上面的启动方式)。/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

重启使用命令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

启动storage服务。

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart


4,测试服务

配置客户端:

上传图片:

[root@localhost conf]# /usr/bin/fdfs_test /etc/fdfs/client.conf upload /root/apps/fastdfs/fastdfs-5.11/conf/anti-steal.jpg

再此注意将22122和23000开放。/etc/sysconfig/iptables(vim /etc/sysconfig/iptables)

# service iptables status    #查看iptables状态
# service iptables restart #iptables服务重启
# service iptables stop #iptables服务禁用
如果没有安装iptables-services,就需要使用systemctl [start|stop|restart|save|status] iptables.service命令重启,和iptables -L查看状态。 由于我将fastdfs安装在阿里云,所以当开放了22122和23000端口都不能访问,测试失败。原因在于:阿里云有个安全组,需要在阿里云的安全组中配置端口22122和23000,详情查看:
  https://jingyan.baidu.com/article/03b2f78c31bdea5ea237ae88.html。另附:下面可能导致不能访问的原因。
因为我把fastDFS安装在阿里云的,而我调试的时候又是在本地调试(即不和fastDFS同服务器),如果我想上传成功,storage.conf中tracker的地址必须为外网IP,即:tracker_server=外网IP:22122,我们一般在安装的时候都是配置成内网IP的,所以想要能远程访问就必须把它设置成外网ip,其它地方配置都是内网ip不变,比如client.conf中使用内网地址,tracker.conf中使用内网地址。当然如果后面我把java应用也发布到阿里云,那么storage.cof中tracker的地址也可以配置成内网ip,只是这个文件服务器外网不能访问。
 

有了这个链接,粘贴到浏览器访问,失败。——阿里云linux系统上没有http服务器,所以浏览器无法访问。

5,搭建nginx提供http服务

可以使用官方提供的nginx插件。要使用nginx插件需要重新编译。

fastdfs-nginx-module_v1.16.tar.gz

解压插件压缩包

修改/root/fastdfs-nginx-module/src/config文件,把其中的local去掉。

旧版本:

对nginx重新config

将以下配置拷贝到编辑器,去掉行间距,否则报:找不到目录的错误。

必须注意后面的 \ 它保证粘贴在xshell不会立即执行

./configure \

--prefix=/usr/local/nginx \

--pid-path=/var/run/nginx/nginx.pid \

--lock-path=/var/lock/nginx.lock \

--error-log-path=/var/log/nginx/error.log \

--http-log-path=/var/log/nginx/access.log \

--with-http_gzip_static_module \

--http-client-body-temp-path=/var/temp/nginx/client \

--http-proxy-temp-path=/var/temp/nginx/proxy \

--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \

--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \

--http-scgi-temp-path=/var/temp/nginx/scgi \

--add-module=/root/apps/fastdfs/fastdfs-nginx-module-master/src

(刚才复制的src路径替换)

make

make install

把/root/fastdfs-nginx-module/src/mod_fastdfs.conf文件复制到/etc/fdfs目录下

修改mod_fastdfs.conf,

nginx的配置/usr/local/nginx/conf/nginx.conf

在nginx的配置文件中添加一个Server:

如果libevent是旧版本,在编译的时候会将一些文件生成后放到/usr/lib64中,这里需要将/usr/lib64中的

libfdfsclient.so放到/usr/lib中,新版本就没有这个问题。

启动nginx(unknown directive "ngx_fastdfs_module"报错:是因为nginx configure时make后没有make install)

使用./nginx -s reload   stop

注意:https://blog.csdn.net/crazzy0727/article/details/53610888需要将80端口监听才能访问nginx。

启动之后查看进程:

ps -aux | grep nginx

发现:没有worker process,说明nginx没有启动成功。

同时在浏览器中输入:192.168.44.41也不能访问nginx。

通过反复查询,看博客。在这篇文章中找到灵感:https://blog.csdn.net/ricciozhang/article/details/49402273

通过查看nginx的日志([root@localhost nginx]# vim /var/log/nginx/error.log )还真发现了

去检查/etc/fdfs/mod_fastdfs.conf,那个tracker的ip没有设置。整了半天啊。

修改后重新加载:sbin/nginx -s reload

然后重新ps -aux | grep nginx

可以啦。在浏览器重新刷新,OKKKKKKKK。

将fastdfs测试的图片链接:http://192.168.44.41/group1/M00/00/00/wKgsKVsmyeGAa214AABdrZgsqUU698_big.jpg访问试试:

Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第十一集之安装FastDFS】的更多相关文章

  1. Linux Kafka集群管理工具kafka-manager的安装使用

    一.kafka-manager简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作.具体支持以下内容: 管理多个集群 ...

  2. docker swarm 集群及可视化界面的安装及配置

    docker swarm 集群及可视化界面的安装及配置 2016-12-14 16:08:46 标签:swarm consul registrator 原创作品,允许转载,转载时请务必以超链接形式标明 ...

  3. 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  4. 分布式缓存技术redis学习(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  5. 分布式缓存技术redis系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  6. redis高级应用(集群搭建、集群分区原理、集群操作)

    文章主目录 Redis集群简介 Redis集群搭建 Redis集群分区原理 集群操作 参考文档 本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 ...

  7. redis在Windows下以后台服务一键搭建集群(单机--伪集群)

    redis在Windows下以后台服务一键搭建集群(单机--伪集群) 一.概述 此教程介绍如何在windows系统中同一台机器上布置redis伪集群,同时要以后台服务的模式运行.布置以脚本的形式,一键 ...

  8. redis系列之4----redis高级应用(集群搭建、集群分区原理、集群操作)

    文章主目录 Redis集群简介 Redis集群搭建 Redis集群分区原理 集群操作 参考文档 本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 ...

  9. Redis集群(五):集群搭建

    一.本文目的        演示在一台机器上搭建3主3从的redis集群,通过演示了解redis集群的搭建,使用和注意事项     二.搭建说明        1.同一台机器搭建3主3从的伪集群   ...

  10. Kafka集群管理工具kafka-manager的安装使用

    一.kafka-manager简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作.具体支持以下内容: 管理多个集群 ...

随机推荐

  1. List集合三种遍历方法

    List<String> list = new ArrayList<String>();list.add("aaa");list.add("bbb ...

  2. Confluence 6 配置数字格式

    在 Confluence 中使用了 2 种数字格式: 整形数字格式.例如: ############### 小数数字格式.例如:###############.########## Confluenc ...

  3. swift项目初始化并添加忽略文件Swift.ignore

    1 先去GitHub上去把最新的忽略文件下载下载 https://github.com/github/gitignore 2 然后找到Swift.gitignore  把里面的 pod 前面的# 删除 ...

  4. linux和windows下,C/C++开发的延时函数,sleep函数

    简介: 函数名: sleep   功 能: 执行挂起一段时间   用 法: unsigned sleep(unsigned seconds);   在VC中使用带上头文件   #include < ...

  5. Socket网络编程(二)

    udp协议发送消息案例 1.创建UdpServer(udp服务器端) package com.cppdy.udp; import java.net.DatagramPacket; import jav ...

  6. Python元组(tuple)

    元组(tuple)是Python中另一个重要的序列结构,与列表类型,也是由一系列按特定顺序排列的元素组成,但是他是不可变序列.在形式上元组的所有元素都放在"()"中,两个元素使用& ...

  7. eclipse创建动态maven项目

    需求表均同springmvc案例 此处只是使用maven 注意,以下所有需要建立在你的eclipse等已经集成配置好了maven了,说白了就是新建项目的时候已经可以找到maven了 没有的话需要安装m ...

  8. 80端口被占用 导致apach无法启动问题

    1.查找是哪个程序占用了80端口 netstat -ano 列出所有进程 观察 “本地地址” 列 找到对应的PID 我这里是4 简单的办法,打开任务管理器,查看PID是4的 是哪个进程. 发现是Sys ...

  9. MongoDB C#驱动给内嵌list添加数据

    Fc fc = new Fc() {}; var temp = Builders<MModel>.Filter.Where(m=>m.id== "882d4d22-ff70 ...

  10. 字典树HihoCoder - 1014

    输入的第一行为一个正整数n,表示词典的大小,其后n行,每一行一个单词(不保证是英文单词,也有可能是火星文单词哦),单词由不超过10个的小写英文字母组成,可能存在相同的单词,此时应将其视作不同的单词.接 ...