centos安装FastDFS+nginx+fastdfs-nginx-module安装配置

前言:

以前的项目上传的文件都是保存到本地或者是局域网内的共享文件夹下,由于数据量,服务器的负载均衡(分机的某些图片无法访问的问题处理)等因素的情况下,就想到用fastdfs来文件管理,花了几天时间硬着头皮去学习怎样安装配置,由于linux基础不好,安装配置起来感觉有点费力,不得不随时去查找一些资料,好在经过这几天的努力安装配置fastdfs最终还是搞定了,最终的付出并没有白费,以下是个人的见解,如有误差,请多多指导。不了解fastdfs的童鞋可以先去了解下,

一、简介

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等

 1.fastdfs架构如下图示:

 

FastDFS服务端有三个角色:跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)。

tracker server:跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。相比GFS中的master更为精简,不记录文件索引信息,占用的内存量很少。
storage server:存储服务器(又称:存储节点或数据服务器),文件和文件属性(meta data)都保存到存储服务器上。Storage server直接利用OS的文件系统调用管理文件。
client:客户端,作为业务请求的发起方,通过专有接口,使用TCP/IP协议与跟踪器服务器或存储节点进行数据交互。
二、文件上传和下载的交互过程

客户端(client)询问Tracker server上传到的Storage server

1.client->Tracker server(返回一台可用的Storage server,返回的数据为该Storage server的IP地址和端口)

2.client直接与1返回的Storage server建立连接->文件上传成功后->Storage server会返回新生成的文件ID->结束

 文件下载流程的步骤如下:

1. client询问Tracker server可以下载指定文件的Storage server,参数为文件ID(包含组名和文件名);

2. Tracker server返回一台可用的Storage server;

3. client直接和该Storage server建立连接,完成文件下载。

系统环境Centor7 64位,本文只安装一个tracker和storage在同一台服务器

准备安装包

首先下载如下的安装包(下载地址,请查看本文最后的下载地址部分):

 

三、安装过程

由于fastdfs5.0.5依赖libevent,所以我们先安装libevent,其中openssl,pcre,zlib是nginx的依赖,由于需要使用apt-get命令安装软件,但此处出现资源不可用的情况或者无效的指令,所以需要手动去安装这些依赖确实会很麻烦,下文会说到,此处是先解释上图的文件,以防有些童鞋误导。

安装步骤如下:

登陆linux系统,切换用户到root用户下

1.安装libevent

 cd /root(对应存放libevent压缩文件的目录)

tar -zxvf libevent-2.0.22-stable.tar.gz

cd libevent-2.0.22-stable

make clean
./configure
 make

 make install

最后,如果是

32位linux:

ln –s /usr/local/libevent/libevent-2.0.so.5 /usr/lib/
64位linux:

ln -s /usr/local/libevent/libevent-2.0.so.5 /usr/lib64/
2.FastDFS安装

tar -zxvf FastDFS_v4.06.tar.gz

cd  FastDFS_v4.06

./make.sh

./make.sh install

如果没报错就表示安装成功了,创建了上面的软链接安装基本就没问题了

2.1:安装成功后,/etc/fdfs目录下会有相关配置文件:

client.conf

http.conf

mime.types

storage.conf

tracker.conf

修改配置文件:

配置tracker

gedit tracker.conf

2.2:修改配置文件的这几项(根据数据情况修改):

disabled=false        #启用配置文件
port=22122          #设置tracker的端口号
base_path=/data/fastdfs/trackerd   #设置tracker的数据文件和日志目录(需预先创建)
http.server_port=18080     #设置http端口号
启动trackerd服务
/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
如需要的开机自动开启的情况:
# echo '/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart' >> /etc/rc.d/rc.local
通过如下命令查看trackerd服务是否启动:

netstat -tupln | grep trackerd

也可以通过查看日志文件看下有没有出错(/data/fastdfs/tracker/logs是前面配置的路径),如果没有报错,应该trackerd服务启动了。

配置storage.conf

gedit storage.conf

disabled=false            #启用配置文件
group_name=group1         #组名,根据实际情况修改
port=23000                #设置storage的端口号
base_path=/data/fastdfs/storage   #设置storage的日志目录(需预先创建)
store_path_count=1        #存储路径个数,需要和store_path个数匹配
store_path0=/data/fastdfs/storage  #存储路径
tracker_server=192.168.188:22122 #tracker服务器的IP地址和端口号
http.server_port=80     #设置http端口号
启动trackerd服务
/usr/local/bin/fdfs_storage  /etc/fdfs/storage.conf
设置开机启动
# echo '/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf restart' >> /etc/rc.d/rc.local
通过如下命令查看storaged服务是否启动:

netstat -tupln | grep storaged

也可以通过查看日志文件看下有没有出错(/data/fastdfs/storage/logs是前面配置的路径),如果没有报错,应该storaged服务启动了

配置http.conf中有防盗链的,可以根据需要配置一下,:

http.anti_steal.check_token=true
http.anti_steal.token_ttl=900
http.anti_steal.secret_key=FastDFSSecretKey001
http.anti_steal.token_check_fail=/data/fastdfs/img/anti-steal.jpg
http.anti_steal.check_token:是否开启防盗链,默认为false
http.anti_steal.token_ttl:防盗链token的有效时长
http.anti_steal.secret_key:生成token的密钥
http.anti_steal.token_check_fail:如果是防盗链,需要展示的图片路径

配置client并测试上传

gedit client.conf

修改配置文件的这几项(根据数据情况修改):
base_path=/data/fastdfs/client
tracker_server=192.168.1.188:22122

那么接下来就可以进行一个简单文件上传测试了

cd /usr/local/bin

 

上图上传的是client.conf ,执行成功会返回对应的组+M00+图片的相对路径(也即上述storage配置的路径)。

如果需要用浏览器访问该图片,就需要nginx来做反向代理,直接访问是不行的。

那么接下来就需要安装和配置nginx,文章的开篇说到,openssl,pcre,zlib是nginx的依赖,如果不能使用命令安装自动安装的话,就需要手动的一个个安装

安装nginx依赖(以下使用的版本是个人使用。并没有特别的意思)

1.安装pcre

获取pcre编译安装包,在http://www.pcre.org/上可以获取当前最新的版本

解压缩pcre-8.31.tar.gz包。

进入解压缩目录,执行./configure。

依次执行make 和 make install命令

2.安装openssl

获取openssl编译安装包,在http://www.openssl.org/source/上可以获取当前最新的版本。

解压缩openssl-1.0.2h.tar.gz包。

进入解压缩目录,执行./config。

依次执行make 和 make install命令

3.安装zlib

获取zlib编译安装包,在http://www.zlib.net/上可以获取当前最新的版本。

解压缩zlib-1.2.5.tar.gz包。

进入解压缩目录,执行./configure。

依次执行make 和 make install命令

4.那么到现在为止:nginx的依赖模块都已经安装完毕,接着可以进行安装nginx

tar -zxvf nginx-1.10.1.tar.gz 

cd nginx-1.10.1

./configure --prefix=/usr/local/nginx      (--prefix是安装到那个目录下)

make

make install

5.安装完nginx后进行nginx的配置

cd /usr/local/nginx/conf

gedit nginx.conf

在server节点加入下面的配置

location /group1/M00{
root /fastdfs/storage/data;
ngx_fastdfs_module;
}

这个时候你监听的端口后默认是80,之前我配置storage文件的时候的http.server_port就有用到80,如需要改其他端口的,可根据情况自行修改

 error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
 
6.启动nginx

/usr/local/nginx/sbin/nginx

用如下命令查看nginx是否启动了:

netstat -tupln | grep nginx

成功的话会看到nginx监控的信息

 

 

7.安装和配置nginx插件fastdfs-nginx-module

tar -zxvf fastdfs-nginx-module_v1.16.tar.gz 

cd fastdfs-nginx-module/src/
gedit config (这一步很重要,很重要,很重要(重要的事情说三遍)我就是被一些文章弄晕了几天,导致启动nginx模块的时候出现错误,如果上面启动nginx报错的话,先不用着急,接着安装nginx插件,这里配置好重新编译一遍,然后重新启动nginx就ok了)

 CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
 CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"
接着需要将插件添加到nginx
cd /root/nginx-1.10.1/
./configure  --add-module=/root/fastdfs-nginx-module/src/
make
make install
 
5.拷贝并修改fastdfs-nginx-module的配置文件
cp /root/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
vim 修改/etc/fdfs/mod_fastdfs.conf 保存退出
修改如下几项:

tracker_server=192.168.1.188:22122
store_path0=/data/fastdfs/storage
base_path=/data/fastdfs/storage/data
url_have_group_name = true(配置多个tracker时,应该将此项设置为true)

建立软连接(配置文件中storage存放数据的路径)

ln -s /data/fastdfs/storage/data /data/fastdfs/storage/data/M00

将FastDFS_v4.06配置目录下的2个文件复制到/etc/fdfs目录下:

cp /usr/local/fastdfs-5.05/conf/http.conf .
cp /usr/local/fastdfs-5.05/conf/mime.types .

最后我再进行一次上传文件测试:

cd /usr/local/bin

 

上传了一张测试图片

然后再浏览器上面输入自己的ip+端口号+文件路径(ip换成绑定的对应域名也行)

时间: 2024-09-20 22:17:30

centos安装FastDFS+nginx+fastdfs-nginx-module安装配置的相关文章

centos 6.0下最简编译安装Nginx+Mysql+PHP+Zend

Nginx是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler 站点开发的, 已经在一些俄罗斯的大型网站上运行多年,相当的稳定. Nginx性能稳定.功能丰富.运维简单.处理静态文件速度快且消耗系统资源极少. 各种有点不说了!!! 闲言: 最近一直时间不太多,一直在学习路由技术,谁知道一个朋友喊我帮忙做下ras,做完了就想起了 nginx,于是这篇文章诞生了,在这里我采用的是CentOS 6.0.安装时是默认的minimal安装,不

CentOS rpm 安装 java 环境 tomcat nginx.

首先测试更新.   yum update     #如果执行 报错可以执行:然后再试试.   yum clean all yum list   首先安装 wget 命令行下载工具.   yum install wget     下载oracle的jdk.下载地址要检查仔细.如果一次没有成功.多试验几次. 访问网站 : http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u1-download-513651.html可以下载 6

CentOS 7系统中hhvm Nginx环境安装配置

CentOS 7(hhvm只支持64位)下hhvm Nginx环境搭建,,到目前为止CentOS 7下还没有hhvm rpm安装包,因此采用源码编译.在安装hhvm前强力建议先利用<lnmp一键安装包>安装完整的lnmp(包括Nginx.PHP.MySQL),通过这种方式我们可以在同一台服务器对每个虚拟主机进行配置,如在同一台服务器上有www.111cn.net跑在PHP上.另一个网站blog.linuxeye.com可以选择跑在hhvm,并可以自由切换用php还是hhvm,只需要简单修改虚拟

centos下 nginx+mysql+bugfree+php安装

  bugfree是一个bug管理工具.由淘宝开发的并且是开源的工具.淘宝官方有提供安装方法:http://testing.etao.com/node/120.通过XAMPP来安装非常方便.但是XMAPP会一次性把mysql/php/apache/bugfree全部安装.但是我当前的机子上已经安装了nginx/mysql/所以思考之后还是决定自己手动安装.于是噩梦来了.我整整花了两天半的时间搞这个. 软件: mysql5.5.28 php-5.2.13.tar.gz php-5.2.13-fpm

nginx+fastdfs报错conf file must have item

问题描述 nginx+fastdfs报错conf file must have item fastdfs安装配置没问题,使用fastdfs_test测试也能上传,但是安装完nginx及其module后启动nginx时 nginx错误显示:[2015-12-12 18:13:19] ERROR - file: ../storage/trunk_mgr/trunk_shared.c, line: 106, conf file must have item "store_path1"! 而浏

【NodeJs】Linux安装NodeJs并配合Nginx实现反向代理

Linux安装NodeJs并配合Nginx实现反向代理 NodeJs 是什么 Node.js是一个Javascript运行环境(runtime).实际上它是对Google V8引擎进行了封装.V8引 擎执行Javascript的速度非常快,性能非常好. Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好. 本地安装(OS X) 版本选择 V4.4.4,长期支持版本,成熟可靠 V6.2.0 稳定版本,最新特性 这里我还是倾向于使用最新的版本~ 下载安装包

Linux安装NodeJs并配合Nginx实现反向代理_Linux

本文介绍了Linux安装NodeJs并配合Nginx实现反向代理 ,具体如下: NodeJs是什么? Node.js是一个JavaScript运行环境(runtime).实际上它是对Google V8引擎进行了封装.V8引 擎执行Javascript的速度非常快,性能非常好. Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好. 本地安装(OS X) 版本选择 V4.4.4,长期支持版本,成熟可靠 V6.2.0 稳定版本,最新特性 这里我还是倾向于使用

使用 ansible 安装 NGINX 和 NGINX Plus

在生产环境中,我会更喜欢做与自动化相关的所有事情.如果计算机能完成你的任务,何必需要你亲自动手呢?但是,在不断变化并存在多种技术的环境中,创建和实施自动化是一项艰巨的任务.这就是为什么我喜欢Ansible 的原因.Ansible 是一个用于 IT 配置管理,部署和业务流程的开源工具,使用起来非常方便. 我最喜欢 Ansible 的一个特点是,它是完全无客户端的.要管理一个系统,通过 SSH 建立连接,它使用Paramiko(一个 Python 库)或本地的 OpenSSH.Ansible 另一个

lanmp(Linux Apache Nginx Mysql Php) 的安装配置_Linux

1 ) 安装Centos 5 , 下载地址 http://mirrors.sohu.com/centos/5/isos/i386/ 安装过程请禁用selinux 和 防火墙 2) 安装必要的组件 LANG=C yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc

CentOS6.3下GitLab+Nginx(SSL)+MySQL+Ruby安装部署

Gitlab是一个用Ruby on Rails开发的开源项目管理程序.可以通过WEB界面进行访问公开的或者私人项目. 它和Github有类似的功能,能够浏览源代码,管理缺陷和注释. 本文选择NGINX与MYSQL来配合GitLab实现web管理,数据存储等功能,配置过程中难点基本在GitLab的脚本修改,SSH秘钥连接,Nginx SSL证书等这些方面,作者也是耗费非常大的力气,结合很多文档的clue以及很多老外的debug comment,终于最终完成,希望在此给大家一个抛砖引玉的机会,了解到