fastdfs部署

文章目录

  • 前言
  • 一、说明
  • 二、部署
    • 1.准备
    • 2.依赖环境
    • 3.开始
    • 4.配置storage
    • 5.配置tracker
    • 6.配置fastdfs-nginx-module
    • 7.nginx配置
  • 总结


前言

因为近期公司fastdfs集群要加2个storage节点,部署完成之后正好借这个机会把过程整理一下写一篇教程,本文会写得非常详细堪称保姆级教学。


`

一、说明

首先,fastdfs有两个重要组成部分tracker和storage,可以部署在同一台服务器上也可以分为多节点部署,具体怎么部署根据实际情况来定,我这里把各个步骤都罗列出来,到时候可以根据情况灵活使用。

二、部署

1.准备

部署之前先要准备好安装包,我这里使用的版本是fastdfs-6.06、fastdfs-nginx-module-1.22、nginx-1.16.1、已经上传到csdn了可以直接下载使用,当然用其他的版本也可以。
storage节点执行:
接下来创建storage的base_path路径:

mkdir -p  /home/fastdfs/storageg3/base

创建store_path路径,我这里是创建了8个,当然只创建一个也是可以的。

mkdir -p  /home/fastdfs/storageg3
mkdir  -p  /home/source/
cd  /home/fastdfs/storageg3
mkdir storage0 storage1 storage2 storage3 storage4 storage5 storage6 storage7

tracker节点执行:
创建tracker的base_path路径:

mkdir  -p /home/fastdfs/tracker

2.依赖环境

因为我的是新机器所以还需要做点准备,更换yum源,安装必备软件,如果你已经做过了可以跳过这一步,但是gcc-c++、pcre-devel、 zlib-devel是必须要安装的,如果没有接下来编译fastdfs就会报错。
tracker和storage都执行:

yum -y install wget
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all && yum makecache
yum update -y
yum -y install  vim gcc gcc-c++  pcre-devel   openssl openssl-devel    gcc automake autoconf libtool make  unzip

上面的步骤走完之后就把准备好的安装包传到服务器上,并解压到/home/source/。

unzip -d /home/source/  fastdfs-6.06.zip
unzip -d /home/source  fastdfs-nginx-module-1.22.zip
unzip -d /home/source  libfastcommon-1.0.43.zip
tar -zxf nginx-1.16.1.tar.gz  -C /home/source/

3.开始

现在开始安装,注意需要先安装libfastcommon再安装fastdfs。
tracker和storage都执行:

cd /home/source/libfastcommon-1.0.43
./make.sh
./make.sh install

cd /home/source/fastdfs-6.06
./make.sh clean
./make.sh
./make.sh install

cd /home/source/nginx-1.16.1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
./configure --add-module=/home/source/fastdfs-nginx-module-1.22/src
make
make install

4.配置storage

安装完成之后就是做一些配置了,配置文件在/etc/fdfs目录下,配置文件storage.conf.sample需要把.sample去掉,也可以改成其他名字方便自己区分,特别是需要启动多个storage进程的时候。
storage节点执行:

cd /etc/fdfs
mv storage.conf.sample storageg3.conf

配置文件需要更改的地方主要就是下面几个:
指定你的group名称,配置自己的组名:

vim   storageg3.conf
    group_name = group3

指定存储数据和日志文件的目录,配置自己的路径:

    base_path=/home/fastdfs/storageg/base

指定存储路径数量和具体路径:

  store_path_count = 8
  store_path0 = /home/fastdfs/storageg3/storage0
  store_path1 = /home/fastdfs/storageg3/storage1
  store_path2 = /home/fastdfs/storageg3/storage2
  store_path3 = /home/fastdfs/storageg3/storage3
  store_path4 = /home/fastdfs/storageg3/storage4
  store_path5 = /home/fastdfs/storageg3/storage5
  store_path6 = /home/fastdfs/storageg3/storage6
  store_path7 = /home/fastdfs/storageg3/storage7

指定tracker地址:

 tracker_server = 192.168.32.146:22122

我这里改了启动名称和启动的配置文件,如果配置文件没有改名字可以不用做这一步:

cd /etc/init.d/
cp fdfs_storaged fdfs_storaged.backup
vim fdfs_storageg3
    PRG=/usr/bin/fdfs_storaged
    CONF=/etc/fdfs/storageg3.conf
    rhstatus() {
            status storageg3
    }

chkconfig fdfs_storageg3s2 on

启动命令:

systemctl start fdfs_storageg3s2
没改的话启动命令是:
systemctl start fdfs_storaged
或者:
fdfs_storaged /etc/fdfs/storage.conf start

5.配置tracker

tracker节点执行:
tracker的base_path路径改为规划的路径,store_group修改为自己的组名:

cd /etc/fdfs
mv tracker.conf.sample  tracker.conf
vim  tracker.conf

base_path = /home/fastdfs/tracker
store_group = group3

启动命令:

systemctl start fdfs_trackerd
或者:
fdfs_storaged /etc/fdfs/trcker.conf start

这一步完成启动之后就能看到storage连接上了,回到storage节点使用fdfs_monitor /etc/fdfs/storage.conf命令就可以看到返回fastdfs的信息:

fdfs_monitor /etc/fdfs/storage.conf

server_count=1, server_index=0

tracker server is 192.168.32.146:22122

group count: 1

Group 1:
group name = group3
disk total space = 65,424 MB
disk free space = 47,176 MB
trunk free space = 0 MB
storage server count = 1
active server count = 0
storage server port = 23000
storage HTTP port = 8888
store path count = 8
subdir count per path = 256
current write server index = 0
current trunk file id = 0

        Storage 1:
                id = 192.168.33.13
                ip_addr = 192.168.33.13  OFFLINE

6.配置fastdfs-nginx-module

上面配置完成后就能够正常使用,但如果需要通过网页访问还需要整合nginx,下面就开始配置吧。
tracker和storage都执行:
把/home/source/fastdfs-nginx-module-1.22/src下的config文件中的/usr/local/include改成/usr/include:

cd /home/source/fastdfs-nginx-module-1.22/src/
vi config
    ngx_module_incs="/usr/include"
    CORE_INCS="$CORE_INCS /usr/include"

下面就是mod_fastdfs.conf的配置了,需要从/home/source/fastdfs-nginx-module-1.22/src目录复制到/etc/fdfs/下,mod_fastdfs.conf模块的配置需要更改的跟storage.conf一样。

cp mod_fastdfs.conf /etc/fdfs/
cp mod_fastdfs.conf  mod_fastdfs.conf.backup
ln -s /etc/fdfs/mod_fastdfs.conf mod_fastdfs.conf

vim /etc/fdfs/mod_fastdfs.conf
    base_path=/home/fastdfs/storageg3/base
    tracker_server=192.168.32.146:22122
    group_name=group3
    url_have_group_name = true
    store_path_count=8
    store_path0 = /home/fastdfs/storageg3/storage0
    store_path1 = /home/fastdfs/storageg3/storage1
    store_path2 = /home/fastdfs/storageg3/storage2
    store_path3 = /home/fastdfs/storageg3/storage3
    store_path4 = /home/fastdfs/storageg3/storage4
    store_path5 = /home/fastdfs/storageg3/storage5
    store_path6 = /home/fastdfs/storageg3/storage6
    store_path7 = /home/fastdfs/storageg3/storage7

7.nginx配置

nginx的配置文件需要

cd /usr/local/nginx/conf
cp mime.types /etc/fdfs/
cp http.conf /etc/fdfs
vim nginx.conf
        server {
            listen       80;
            server_name  localhost;
            location ~/group[3]/M[0-9][0-9] {
                ngx_fastdfs_module;
            }
            location / {
                root   html;
                index  index.html index.htm;
            }

vim  /usr/lib/systemd/system/nginx.service
    [Unit]
    Description=nginx stable last
    After=syslog.target network.target remote-fs.target nss-lookup.target
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    ExecStop=/usr/local/nginx/sbin/nginx -s stop
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    #ExecQuit=/usr/local/nginx/sbin/nginx -s quit
    PrivateTmp=true
    [Install]
    WantedBy=multi-user.target

cd /etc/init.d
chkconfig nginx on
systemctl status nginx
systemctl start nginx
systemctl enable nginx


总结

内容完毕,有不明白的可以留言。

你可能感兴趣的:(fastdfs,运维,服务器,linux)