fastdfs主从服务搭建+nginx配置

由于项目需要最近搭建了一遍fastdfs的主从服务和nginx配置,磕磕碰碰最终到达终点,好记性不如烂笔头,现将过程记录下。

1.环境

    centos7      libevent  nginx    FastDFS

2.部署

    将libevent、FastDFS和nginx的压缩包通过工具传到centos7的服务器上,我将FastDFS放在/home目录下,nginx放在/usr/local目录下,libevent放在/usr目录下

2.1 安装libevent

    本文安装的是 libevent1.4.14b-stable ,下载地址: http://monkey.org/~provos/libevent/。下载好的libevent进行解压

    tar zxvflibevent-1.4.14b-stable.tar.gz

    进入解压后的目录,执行以下的shell代码

    ./configure -prefix=/usr

    make clean

    make

    make install

安装libevent完成

2.2安装FastDFS

  2.2.1 下载并解压

    下载FastDFS的源程序,下载地址http://code.google.com/p/fastdfs/

    这里下载的是FastDFS_v5.02.tar.gz

    在home文件夹下创建 ccx文件夹

    cd /home

    mkdir ccx

    在FastDFS_v5.02.tar.gz所在的文件下执行一下代码

    sudotar vxzf FastDFS_v5.02.tar.gz -C/home/ccx/

    这样解压出来的目录结构是 /home/ccx/FastDFS  后续用%FastDFS%表示该目录

  2.2.2 修改变量并编译安装

    在解压目录%FastDFS%下编辑make.sh文件,找到  #WITH_HTTPD=1 修改成   WITH_HTTPD=1 以支持http.

即:

    cd %FastDFS%     //进入解压目录

    vim make.sh

    找到 

    #WITH_HTTPD=1 //找不到的话就在最后新增一行

    修改为

    WITH_HTTPD=1

    修改后保存退出,进入%FastDFS%目录并执行以下代码进行编译安装

    cd  %FastDFS%   

    ./make.sh

    ./make.sh install

    上述两步没有出错的话窗口内会出现

        #ln -fs/usr/local/lib/libfastcommon.so.1 /usr/local/lib/libfastcommon.so

        #ln -fs/usr/local/lib/libfdfsclient.so.1 /usr/local/lib/libfdfsclient.so

        sh ./fdfs_link_library.sh

    表示安装成功。

    本实例中,服务器A上部署了tracker和storage,服务器B上部署了storage和NGINX。A为主,B为从。NGINX用于浏览器获取fdfs中的数据。

  2.2.3 配置文件

    FastDFS的配置文件均在解压目录的conf文件夹下,具体作用如下所示:

    Client.conf   客户端上传配置文件

    Storage.conf  文件存储服务器配置文件

    Tracker.conf  负责均衡调度服务器配置文件

    http.conf     http 服务器配置文件

配置文件需要根据服务器环境的不同,进行不同的配置。

具体可以参考 FastDFS 官方的安装配置 http://code.google.com/p/fastdfs/wiki/Setup

以及 FastDFS 原理介绍文档 http://code.google.com/p/fastdfs/wiki/Overview

2.2.4 tracker的配置与启动

在 /home/ccx 下新建目录  fastdfs_tracker,用于存储日志和 storage server等信息

进入目录 %FastDFS%/conf/ 中,编辑  tracker.conf 文件

    cd  /home/ccx/

    mkdir   fastdfs_tracker

    cd    /home/ccx/FastDFS/conf/

    vim  tracker.conf 

编辑tracker.conf,找到相对应的代码进行修改:

    1. base_path=/home/yuqing/fastdfs    ——>    base_path=/home/ccx/fastdfs_tracker

    #改成你想要的 http 端口,将来http 下载文件的端口就是他了

    2. http.server_port=8080     ——>     http.server_port=8090

    #http 支持

    3. ##include http.conf   ——>    #include http.conf       //这个地方找不到,可以不用改

    #默认 4GB,如果空间不足,建议调小,否则会报 no free space 的异常,无法正常启动

    4. reserved_storage_space = 4GB     ——>      reserved_storage_space = 1GB

    reserved_storage_space= %10也可以不改

    #tracker server 对 storage server 供服务的端口,使用默认的即可,也可以自定义

    5. port=22122

    #绑定Tracker的IP,要求实际的IP地址

    6. bind_addr=192.168.204.128

支持HTTP:

将http.conf文件拷贝到/etc/fdfs目录下

    cp %FastDFS%/conf/http.conf /etc/fdfs/

注:为了支持 http,必须将这个文件拷贝到此目录,否则无法启动,报 param http.XXX not exist or is empty 类似的错误

启动Tracker服务器

编写shell脚本:

    vi start-tracker.sh(创建脚本)

    /usr/local/bin/fdfs_trackerd  /home/ccx/FastDFS/conf/tracker.conf(脚本内容)

    chmod +x start-tracker.sh(给脚本附加可执行权限)

    ./start-tracker.sh(执行脚本即启动了tracker服务器)

进入/home/ccx/fastdfs_tracker/logs/目录下查看trackerd.log文本,trackerd.log文本为tracker的启动日志,如果看到下图类似代码,tracker server配置成功。

2.2.5 storage的配置与启动

    在/home/ccx目录下 新建文件夹  fastdfs_storage 用于存储storage的日志等数据。

    cd  /home/ccx/

    mkdir   fastdfs_storage

在/home/目下创建zhckpt文件,在zhckpt文件目录下创建storage文件,用于存放上传的数据信息。

    cd  /home

    mkdir   zhckpt

    cd /home/zhckpt

    mkdir storage

进入目录 %FastDFS%/conf/  中,编辑  storage.conf 文件

    cd    /home/ccx/FastDFS/conf/

    vim  storage.conf 

编辑   storage.conf,找到相对应的代码进行修改:

 #用于存储storage的相关的log、group内的相关信息的目录

    1. base_path=/home/yuqing/fastdfs       ——>    base_path=/home/ccx/fastdfs_storage

#文件的存储位置,在一台 storage server 上可以指定多个存储位置

    2. store_path0=/home/yuqing/fastdfs      ——>     store_path0=/home/zhckpt/storage 

 #必须指定

    3. group_name=group1

#修改成 tracker server 的 IP 和端口信息

    4.tracker_server=192.168.209.121:22122    #必须指定    tracker_server=192.168.204.128:22122

  #http 支持

    5. ##include http.conf    ——>       #include http.conf   //找不到,忽略

  #绑定Tracker的IP,要求实际的IP地址

    6. bind_addr=192.168.204.128

启动storage,编写shell脚本:

    vi start-storage.sh(创建脚本)

    /usr/local/bin/fdfs_storaged  /home/ccx/FastDFS/conf/storage.conf  (脚本内容)

    chmod +x start-storage.sh(给脚本附加可执行权限)

    ./start-storage.sh(执行脚本即启动了tracker服务器)

进入/home/ccx/ fastdfs_storage/logs/目录下查看storaged.log文本,storaged.log文本为storage的启动日志,如果看到下图类似显示,storage server配置成功。

    要注意的是,如果在Tracker Server和storage配置过程中出现错误,需要重新安装的时候,要注意查看他们的状态ps-ef|grep fdfs,如果处在开启状态,请关闭,否则会报错!

2.2.6 FastDFS上传配置

    FastDFS 安装包中,自带了客户端程序,通过程序可以进行文件上传。在使用这个客户端 程序之前,首先需要配置 client.conf,然后再进行文件上传及下载。

目录fastdfs_tracker之前已经创建了,该名称可自定义,但此目录必须存在,用于存放文件上传log,由于本文中前面已经新建了该目录,本次操作不要再次新建目录。

    cd/home/ccx/FastDFS/conf/

    viclient.conf

编辑client.conf后找到相应代码修改:

#用于存储storage的相关的log、group内的相关信息的目录

1. base_path=/home/yuqing/fastdfs    ——>    base_path=/home/zhckpt/fastdfs_tracker

#修改成 tracker server 的 IP 和端口信息

2. tracker_server=192.168.209.121:22122     ——>    tracker_server=192.168.204.128:22122

#修改端口信息

3. http.tracker_server_port=8080      ——>     http.tracker_server_port=8090

#支持 http

4. ##include http.conf    ——>    #include http.conf


2.2.7 FastDFS上传文件a.txt测试

进入/usr/local/bin/目录,创建一个文件a.txt

cd  /usr/local/bin

 vim a.txt

编辑a.txt的内容,退出回到   /home/ccx/  目录下。

以下方法任选一种:

1. 进入 /usr/local/bin/ 目录,启动 storage 服务器,执行 Shell 代码:

fdfs_test  %FastDFS%/conf/client.confupload a.txt

2. 编写shell脚本:

vi test-upload.sh(创建脚本)

/usr/local/bin//fdfs_upload_file

/home/ccx/FastDFS/conf/client.conf start-tracker.sh

(编辑脚本内容)

chmod +x test-upload.sh(给脚本附加可执行权限)

chmod +x %FastDFS%/conf/client.conf

./test-upload.sh(执行脚本即启动了tracker服务器)

这两种方法如果有一种不可以,请尝试另一种。

如果命令行反馈信息如下,说明文件上传成功:


    从服务的FastDFS的搭建和主服务一样,只不过不用搭建tracker,只部署storage即可。部署好之后,在tracker里上传的文件,可以在两个storage里都可以查看。


2.3 部署NGINX

    nginx必须和想查看的storage部署在一个服务器上,本实例中将B中的storage作为查看使用,所以nginx也部署在B服务器上。

安装gcc

       yum install gcc-c++

安装PCRE

       yum install –y pcre pcre-devel

安装zlib

       yum install –y zlib zlib-devel

安装OpenSSL

       yum install –y openssl openssl-devel

本地使用的nginx是免安装版的,直接解压就可以使用,如果大家的nginx不是免安装版,需要先进行安装哦,在此就不叙述了,大家自行搜索下如何在centos下安装nginx即可。

将nginx.zip放到 /usr/local/  目录下,解压nginx

    unzip nginx.zip

进入解压后的目录 /usr/local/nginx/conf   目录下修改配置文件:

    cd /usr/local/nginx/conf 

    vim nginx.conf

找到以下部分并进行修改:



将端口设置为80,server_name设置为 本机IP。

在文件最后一行(括号内)加上 

    include /usr/local/nginx/conf/image.conf         

这是引用image.conf配置文件。

保存后退出。

还在 /usr/local/nginx/conf 目录下  编辑文件image.conf

    vim image.conf

输入以下代码:


listen: 即为浏览器访问数据的端口号

server_name: 为本机IP

定义浏览器访问FastDFS的路径为  /group1/M00

因此需要在服务器B上设置软连接

在 /home/zhckpt/storage/data下创建目录group1

    cd /home/zhckpt/storage/data

    mkdir group1

    ln -s /home/zhckpt/storage/data/ /home/zhckpt/storage/data/group1/M00

设置成功后再启动FastDFS和Nginx,再次上传一条数据到FastDFS中,如下图所示



复制输出的url地址,将IP改为nginx所在服务器IP,将端口修改为image.conf中配置的端口,在浏览器中输入即可获取到刚刚上传的数据。至此,所有服务搭建成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值