基于CentOS7部署单机版的分布式文件系统FastDFS

部署环境

本文将基于CentOS7安装单机版本的FastDFS

需要的压缩包

这是作者的GitHub地址,里面有所需的压缩包可供下载,分别是:

fastdfs-nginx-module,这是在已经安装好Nginx的基础上要添加的模块,本文下载的版本是:

wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz

fastdfs,这是FastDFS的主程序安装包,本文下载的版本是:

wget https://github.com/happyfish100/fastdfs/releases/tag/V6.06

libfastcommon,这是作者从FastDFS主程序分离出来的通用代码,本文下载版本是:

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.43.tar.gz

wget下载后压缩包名字只有版本号,解压之后会有完整的名称,所以无需担心。

其他安装包在下文已经给出,所有压缩文件均下载到 /usr/local/ 目录下。

1. 安装Nginx

Nginx安装前准备

请按照顺序安装,如果wget发现特别慢,使用google搜索相对应的官网查看下载地址是否有变动,如果有变动手动修改一下wget的地址就可以了,一般来说都是没问题的。

说明:众所周知,其实可以用yum来安装下面的这些东西,我将会在文章末尾贴出yum的安装命令,理论上都是可以的,但是如果不确定的话,还是按照的我的步骤一步一步来, 确保万无一失。

注意:在本文的方法中,nginx必须用压缩包安装,由于笔者不是专业的运维,没有找到yum安装的Nginx添加模组的方法,请见谅。

安装编译环境:

sudo yum install gcc gcc-c++

安装perl

安装perl是因为安装ssl需要。

 wget https://www.cpan.org/src/5.0/perl-5.28.0.tar.gz
 tar -xzf perl-5.28.0.tar.gz
 cd perl-5.28.0
 ./Configure -des -Dprefix=$HOME/localperl
 make
 make test
 make install

安装pcre

pcre官网https://www.pcre.org/

下载pcre2可能会报错,安装1的就可

# 下载安装包
wget ftp://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
# 解压
tar -zxvf pcre-8.44.tar.gz
#进入目录
cd pcre-8.44
#编译安装
./configure
make && make install

安装 zlib

# 下载安装包
sudo wget http://www.zlib.net/zlib-1.2.11.tar.gz
# 解压
sudo tar -zxvf zlib-1.2.11.tar.gz
#进入目录
cd zlib-1.2.11
# 安装
sudo ./configure
sudo make && make install

安装openssl

# 下载 
sudo wget https://www.openssl.org/source/openssl-1.0.2n.tar.gz
# 解压
sudo tar -zxvf openssl-1.0.2n.tar.gz
# 进入目录
cd openssl-1.0.2n
# 安装
sudo ./config --prefix=/usr/local/openssl
sudo make && make install

安装nginx

# 下载 
sudo wget http://nginx.org/download/nginx-1.8.1.tar.gz
# 解压
sudo tar -zxvf nginx-1.8.1.tar.gz
# 进入目录
cd nginx-1.8.1
# 安装
sudo ./configure --prefix=/usr/local/nginx --with-pcre=//usr/local/pcre-8.44 --with-zlib=/usr/local/zlib-1.2.11 --with-openssl=/usr/local/openssl
sudo make && make install

下载安装好之后的文件目录如下图所示:

测试Nginx

切换到/usr/local/nginx/sbin/目录下,注意:这里的/nginx目录不是解压的目录,是安装完出现的可执行目录,解压目录没有修改名字的话还是叫做nginx-1.8.1。

配置文件默认使用的是/usr/local/nginx/conf/nginx.conf,默认端口是80,需要可自行修改,关于nginx的配置如何使用不再赘述,不是本文的重点,如果需要请自行Google。

#没有配置的话,必须切换到/nginx/sbin/目录下才能执行!
#启动
./nginx
#停止
./nginx -s stop 
#重启
./nginx -s stop
#查看版本
./nginx -v
#查看安装的模块等信息
./nginx -V
#查看配置是否格式正确
./nginx -t

上面是常用的命令,测试只需要用到启动命令。

查看端口监听情况: > ps -aux | grep nginx

注意:如果用的是云服务器,必须设置安全组开启端口,默认是监听80,否则无法访问到。

可以使用 “curl localhost” 命令进行测试,返回的网页是Welcome to Nginx的页面就证明没问题,如果是外网访问不了,就是安全组有问题,或者是防火墙的问题。

处理防火墙:

#如果云服务器的安全组已经设置好了,把防火墙添加端口权限允许访问
firewall-cmd --zone=public --add-port=80/tcp --permanent
#然后重启防火墙
systemctl restart  firewalld

#如果还是不行,就关闭防火墙
systemctl disable firewalld

这样,就能够访问到Nginx首页了。

2. 安装fastDFS

首先请确定已经下载好了文章开头提到的以及压缩包。

注意:解压必须切换到压缩包的目录,也就是

cd /usr/local/

安装libcommon

#解压,解压完是libfastcommon-1.0.43文件夹
tar -zxvf V1.0.43.tar.gz 
cd libfastcommon-1.0.43
./make.sh
./make.sh install

安装tracker

#解压,解压完是fastdfs-6.06文件夹
tar -zxvf V6.06.tar.gz

cd fastdfs-6.06

./make.sh

./make.sh install

#安装好之后,默认在 /etc/fdfs/ 目录下会有.conf.sample文件,一共有四个,不用管这些模版。
#切换到配置目录,里面有配置文件的模版,把他们拷贝到/etc/fdfs上,后续运行使用etc下的配置文件
cd /usr/local/fastdfs-6.06/conf
#拷贝
cp * /etc/fdfs/

#创建tracker目录
mkdir -p /home/fastdfs/tracker

#配置tracker服务。
vim /etc/fdfs/tracker.conf
#修改bath_path为刚才创建的目录,可以用vim的搜索功能快速定位
bath_path=/home/fastdfs/tracker

四个配置文件


#启动tracker,使用之前拷贝的配置文件启动
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

#重启命令
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart


安装storage服务


#如果是在不同的服务器安装,第四步的1~4需要重新执行。(单机版可以不用考虑)
mkdir -p /home/fastdfs/storage

#修改以下三处内容,路径千万别写错
vim /etc/fdfs/storage.conf

base_path=/home/fastdfs/storage
store_path0=/home/fastdfs/storage
#注意,这里默认有2个tracker_server,我们只需要一个,把另外一行注释掉
tracker_server=你的IP:22122
#修改端口
http.server_port = 80

#启动storage服务。
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

#cd /home/fastdfs/storage多了一些文件夹

storage.conf

测试

#新建文件夹
mkdir -p /home/fastdfs/client

vim /etc/fdfs/client.conf
#修改以下内容,具体见下图。
bash_path=/home/fastdfs/client
tracker_server=你的IP:22122

修改client.conf:

执行以下代码测试,随便拿一个图片就行,就用刚才我们拷贝过去的图片

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/anti-steal.jpg

返回图片地址没有报错,就证明成功了!

3.整合Nginx

#解压,解压完是fastdfs-nginx-module-1.22的文件夹
tar -zxvf V1.22.tar.gz 
#切换到模块的src文件夹
cd /usr/local/fastdfs-nginx-module-1.22/src
#修改配置文件,把所有路径中的local删除!具体见下图。
vim config
#修改配置
vim mod_fastdfs.conf
#修改以下3个地方,具体见下图。
tracker_server=你的IP:22122
url_have_group_name = true 
store_path0=/home/fastdfs/storage

#拷贝配置文件
cp mod_fastdfs.conf /etc/fdfs

#先关闭Nginx
cd /usr/local/nginx/sbin/
./nginx -s stop

#修改Nginx配置文件,增加下面的代码,注意,格式要放对,不懂Nginx配置请自行Google
cd /usr/local/nginx/conf
vim nginx.conf

#添加下面的内容
location ~/group[0-9]/M00 {
		ngx_fastdfs_module;
}

#切换到/usr/local/nginx-1.16.1目录,不能切换到nginx目录!!
cd /usr/local/nginx-1.16.1
#添加模组
./configure \
--prefix=/usr/local/nginx \
--add-module=/usr/local/fastdfs-nginx-module-1.22/src
#重新编译
make

make install

#启动Nginx
cd /usr/local/nginx/sbin/
./nginx

#再次测试

> /usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/anti-steal.jpg

#在浏览器使用返回的地址访问,就可以得到图片了,至此就安装成功了!


需要删除的local:

mod_fastdfs.conf修改的3个地方:

附件

Nginx常用命令

如果已经使用yum安装了nginx,要卸载掉然后重新安装,使用以下方法:

删除使用yum安装的nginx方法
1.停止Nginx软件
[root@localhost ~]# service nginx stop
2.删除Nginx的自动启动
[root@localhost ~]# chkconfig nginx off
3.从源头删除Nginx
[root@localhost ~]# rm -rf /usr/sbin/nginx
[root@localhost ~]# rm -rf /etc/nginx
[root@localhost ~]# rm -rf /etc/init.d/nginx
4.再使用yum清理
  [root@localhost ~]# yum remove nginx

Reference

https://www.wordpressleaf.com/2016_1402.html

https://www.cnblogs.com/xiaoshiwang/p/11453625.html

https://www.jianshu.com/p/70b48a150037

https://segmentfault.com/a/1190000012435644