手把手指导Linux上安装fastDFS+nginx+ FastDTH分布式文件服务

 

手把手指导安装fastDFS+nginx+ FastDTH分布式文件服务

环境:CentOS 7.1

1.安装gcc:

yum install gcc-c++

 

开始安装前需要安装libevent

下载libevent-2.1.11-stable.tar.gz,

解压进入目录cd libevent-2.0.11-stable

修改lib路径./configure --prefix=/usr

make

make install

 

下载解压libfastcommon-master.zip

定位到libfastcommon 的解压路径,依次执行以下命令安装libfastcommon;

./make.sh

./make.sh install

注意:libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/lib下。

 

cp /usr/lib64/libfastcommon.so /usr/lib

 

2.安装fastDFS的tracker

解压FastDFS_v5.05.tar.gz,定位到解压文件夹中,执行以下命令:

 

./make.sh

./make.sh install

注意:某些版本会报语法错,经亲测验证FastDFS_v5.05.tar.gz可用。

安装成功后,将解压后路径下的conf文件拷贝到/etc/fdfs/下;

如:

/home/zhubx/FastDFS/conf/* /etc/fdfs/

进入/etc/fdfs/目录下,拷贝出一份tracker.conf.sample 来修改:

vim tracker.conf

修改base_path=/home/FastDFS  (找一个稳定的路径)

修改http.server_port=8088   (这个可以随意修改,合理合法就行)

 

启动tracker验证安装是否成功:

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

或者/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

查看端口22122是否打开来验证:

netstat -tunlp

出现如图所示信息说明tracker安装成功。

 

3.安装FastDFS的storage

为了实现分布式,我们克隆出一台虚拟机,在新的虚拟机上安装storage,storage的安装包跟tracker一样(就是同一个包)。

切到/etc/fdfs/ 路径,拷贝一份storage配置出来修改,

cd /etc/fdfs/

创建目录/home/zhubx/fdfs,/home/zhubx/fdfs/fdfs_storage

cp storage.conf.sample storage.conf

修改group_name=group1

修改base_path=/home/zhubx/fdfs

修改store_path0=/home/zhubx/fdfs/fdfs_storage

保存退出 :wq

 

启动storage

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

查看端口验证storage是否启动成功:netstat -tunlp

 

如上图所示代表storage已启动成功。

 

接下来就可以测试文件上传了

修改/etc/fdfs/client.conf配置文件

vi /etc/fdfs/client.conf

修改base_path=/home/fastdfs

修改tracker_server=192.168.1.114:22122

保存退出::wq

 

测试上传功能:

/usr/bin/fdfs_test  /etc/fdfs/client.conf  upload  /home/test4.txt

 

 

当出现如上图所示即表示上传成功了。

 

 

4.安装fastDFS-nginx-module

fastDFS没有提供下载接口,所以需要接入nginx来实现下载功能

 

在Storage 服务器上安装nginx,目的:提供下载接口。

经亲测验证,nginx-1.17.6.tar.gz版本可用。

 

安装nginx及fastDFS-nginx-module前需要安装nginx的依赖包:PCRE、zlib、openssl;依次执行以下命令即可

yum install -y pcre pcre-devel

yum install -y zlib zlib-devel

yum install -y openssl openssl-devel

解压压缩包,并进入解压后根路径:cd nginx-1.17.6

 

安装fastDFS-nginx-module

经亲测验证fastdfs-nginx-module_v1.19.zip 版本可用

也是先解压,将zip压缩包解压到/usr/local/路径下:

unzip fastdfs-nginx-module_v1.19.zip -C /usr/local/

修改config文件,将文件中/usr/local/路径改为/usr/

cd fastdfs-nginx-module-master/src

vim config

ngx_addon_name=ngx_http_fastdfs_module

if test -n "${ngx_module_link}"; then
    ngx_module_type=HTTP
    ngx_module_name=$ngx_addon_name
    ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
    ngx_module_libs="-lfastcommon -lfdfsclient"
    ngx_module_srcs="$ngx_addon_dir/ngx_http_fastdfs_module.c"
    ngx_module_deps=
    CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"
    . auto/module
else
    HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
    NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"
    CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
    CORE_LIBS="$CORE_LIBS -lfastcommon -lfdfsclient"
    CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"
fi

保存退出

:wq

 

将src目录下的mod_FastDFS.conf 文件拷贝到目录/etc/fdfs/

cp mod_fastdfs.conf /etc/fdfs/

 

修改/etc/fdfs/mod_FastDFS.conf 内容,

base_path=/home/zhubx/fastdfs/

tracker_server=[tracker的IP]:22122

url_have_group_name=true

store_path0=/home/zhubx/fastdfs/fdfs_storage

创建 /home/zhubx/fastdfs/fdfs_storage 目录

将libfdfsclient.so拷贝至/usr/lib下

cp /usr/lib64/libfdfsclient.so /usr/lib/

 

创建nginx/client 目录

mkdir -p /var/temp/nginx/client

 

 

5.安装nginx

使用nginx-1.17.6.tar.gz 版本

先解压,再进入到解压后路径

tar -zxvf nginx-1.17.6.tar.gz

cd nginx-1.17.6

配置安装参数,命令 :

./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=/usr/local/fastdfs-nginx-module-master/src

 

make

make install

 

正常编译安装的话不会有报错,如报一些C语言语法错,可判断为前几步安装编译依赖包不正确、或各组件版本间有不兼容的情况。

 

配置nginx

进入目录/usr/local/nginx/conf/

cd /usr/local/nginx/conf/

 

修改nginx.conf配置

(部分)

vi nginx.conf

listen       80;

server_name  localhost;

location /group1/M00/{

                root /home/zhubx/fastdfs/fdfs_storage/data;

                ngx_fastdfs_module;

        }

保存退出:wq

 

测试nginx 是否可访问,如不能正常访问,这拷贝文件如果nginx 不能访问,则将fastdfs/conf目录下的http.conf mime.types 拷贝到/etc/fdfs/ 重试生效。

cp http.conf mime.types /etc/fdfs/

 

 

标准的安装到此就结束了,如果还想进阶高配,比如fastDHT去重存储,那就继续安装fastDHT

 

安装fastDHT 前需要先解压安装db-18.1.32.tar.gz

tar -zxvf db-18.1.32.tar.gz

cd build_unix/

../dist/configure --prefix=/usr/local/db-18.1.32-test

make

make install

 

安装FastDHT

将FastDHT_v1.17.tar.gz 拷贝到/usr/local/目录下

cp FastDHT_v1.17.tar.gz /usr/local/

 

 

 

启动nginx

cd /usr/local/nginx/sbin/

 

 

出现上图说明启动成功。

 

 

 

接下来可选择是否安装fastDHT

fastDHT 的作用主要是对上传的文件去重存储,依赖于Berkeley DB作为数据存储的媒介,同时强依赖于libfastcommon

安装Berkeley DB

下载db-18.1.32.tar.gz

解压,进入解压后根目录

找到build_unix

cd build_unix

../dist/configure --prefix=/usr/local/db-18.1.32-test

make

make install

 

 

下载fastDHT

地址:https://github.com/happyfish100/fastdht

解压fastdht-master.zip

unzip fastdht-master.zip

进入解压后根目录:cd fastdht-master

修改:

CFLAGS=’-Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -I/usr/local/db-18.1.32-test/include/ -L/usr/local/db-18.1.32-test/lib/’

:wq

 

编译安装:

./make.sh

./make.sh install

 

安装完成后检查/etc/fdht/ 目录下是否有三个文件生成:

fdht_client.conf  fdhtd.conf  fdht_servers.conf

 

创建fastdht 目录:

mkdir /opt/fastdht

 

修改配置文件fdht_client.conf如下

vim fdht_client.conf

base_path=/opt/fastdht

keep_alive=1

#include /etc/fdht/fdht_servers.conf

:wq

 

修改配置fdht_servers.conf如下

vim fdht_server.conf

group_count = 1

group0 = 192.168.1.114:11411

:wq

 

修改配置fdhtd.conf如下

(关键部分)

vim fdhtd.conf

port=11411

bash_path=/opt/fastdht (该目录必须是已经存在的)

#include /etc/fdht/fdht_servers.conf

保存退出

:wq

 

配置/etc/fdfs/目录下的storage.conf文件,依次修改如下内容

#是否检测上传文件已经存在。如果已经存在,则建立一个索引链接以节省磁盘空间

check_file_duplicate=1            

 

#当上个参数设定为1时 , 在FastDHT中的命名空间

key_namespace=FastDFS

 

#长连接配置选项,如果为0则为短连接 1为长连接

keep_alive=1

 

#此处特别需要注意配置

#include /etc/fdht/fdht_servers.conf

 

执行以下命令:

cp /usr/local/db-18.1.32-test/lib/libdb-18.1.so /usr/lib/

cp /usr/local/db-18.1.32-test/lib/libdb-18.1.so /usr/lib64/

 

 

 

启动fastDHT

fdhtd /etc/fdht/fdhtd.conf

 

 

集锦:如果当前要安装的系统版本是centos7.x,那么安装完成启动的时候可能会报个错:

libevent-2.1.so.7: cannot open shared object file: No such file or directory

这时候了应该是某些C语言类库或者某些设置没有配,执行以下批量安装即可:

yum install \

vim \

git \

gcc \

gcc-c++ \

wget \

make \

automake \

autoconf \

libtool \

libdb \

libdb-devel \

libevent \

libevent-devel \

-y \

 

 

回车再重新启动就好了;

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值