Centos7部署FastDFS及Nginx

FastDFS 支持集群部署,这里我仅仅使用一台虚拟机来进行测试,会对集群部署的点进行讲解(Nginx、单点 Tracker Server、单点 Storage Server 进行安装)。我会先安装 Nginx,然后安装单点 Tracker Server、单点 Storage Server ,最后整合 FastDFS-Nginx-Module。

所用环境信息:

  • 服务器:centos7
  • Nginx:nginx-1.12.2
  • FastDFS:FastDFS_v5.05
  • FastDFS-Nginx-Module:fastdfs-nginx-module_v1.16
  • libfastcommon:libfastcommonV1.0.7
    资源下载:百度网盘链接 密码: algl

将下载好的资源 上传到服务器

安装Nginx

1、安装依赖库:

  • 安装 GCC(命令:yum install gcc
  • 安装 PCRE(命令:yum install pcre-devel
  • 安装 ZLib(命令:yum install zlib zlib-devel
  • 安装 OpenSSL(命令:yum install openssl openssl-devel
    综合命令:yum -y install gcc pcre-devel zlib zlib-devel openssl openssl-devel

2、解压nginx-1.12.2.tar.gz:tar -zxvf nginx-1.12.2.tar.gz

3、安装Nginx:

  • 先进入到/nginx-1.12.2
cd nginx-1.12.2

使用以下命令安装 Nginx:(./configure 默认安装位置为 /usr/local/nginx,可以使用参数 --prefix=/usr/nginx 进行修改)

./configure
make
make install

4、测试配置文件:
测试配置文件是否正确,我们先进入到 /usr/local/nginx/sbin 目录,执行以下命令:
cd /usr/local/nginx/sbin
./nginx -t

5、启动Nginx:./nginx
使用curl 测试Nginx是否启动成功:curl localhost

6、添加到守护进程
1)在系统服务目录里创建nginx.service文件
vim /etc/systemd/system/nginx.service
内容如下:

[Unit]
Description=nginx
After=network.target
  
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target

部分参数说明:

[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

2)设置开机自启动:systemctl enable nginx.service
停止开机自启动:systemctl disable nginx.service
查看服务当前状态:systemctl status nginx.service
重新启动服务:systemctl restart nginx.service
查看所有已启动的服务:systemctl list-units --type=service

FastDFS安装

1、安装依赖库:

yum install gcc-c++
yum -y install libevent

2、安装 libfastcommon
libfastcommon 是 FastDFS 官方提供的,libfastcommon 包含了 FastDFS 运行所需要的一些基础库。该库上面我有提供下载地址。

tar -zxvf libfastcommonV1.0.7.tar.gz
cd libfastcommon-1.0.7/
./make.sh
./make.sh install

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

3、安装 FastDFS

# 解压
tar -zxvf FastDFS_v5.05.tar.gz
cd FastDFS
# make
./make.sh
./make.sh install

安装成功将安装目录下的 conf 下的文件拷贝到 /etc/fdfs/ 下:
cp -a conf/* /etc/fdfs/

4、配置 Tracker
安装成功后进入 /etc/fdfs 目录,我们要对 tracker.conf 配置文件进行修改:

a) 在 /home 目录下新建 FastDFS 目录:

cd /home/
mkdir FastDFS

b) 修改 tracker.conf:

cd /etc/fdfs/
vim tracker.conf
#----------------------------修改内容如下----------------------------
base_path=/home/yuqing/FastDFS 改为:base_path=/home/FastDFS
http.server_port=8080 改为 http.server_port=80

如果配置 Tracker 集群,主需要在多台服务器上安装 FastDFS,然后配置 Tracker 即可。

5、启动 Tracker
使用命令启动 Tracker,然后查询是否启动。

# 启动命令
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
# 查看是否启动
ps -ef | grep fdfs

6、配置 Storage
由于我只使用一台vps进行模拟安装,就无需再次安装 FastDFS 了,如果你需要集群部署,比如你有三台机器:192.168.1.101、192.168.1.102、192.168.1.103,那么你需要在每台机器上都执行“安装 FastDFS”和“配置 Storage”即可,这里仅仅使用一台vps进行演示。

安装成功后进入 /etc/fdfs 目录,我们要对 storage.conf 配置文件进行修改:
a) 在 /home/FastDFS 目录下新建 fdfs_storage 目录:

cd /home/FastDFS
mkdir fdfs_storage

b) 修改 storage.conf:

cd /etc/fdfs/
vim storage.conf

#----------------------------修改内容----------------------------
group_name=group1
base_path=/home/yuqing/FastDFS 改为 base_path=/home/FastDFS

store_path0=/home/yuqing/FastDFS 改为store_path0=/home/FastDFS/fdfs_storage
#如果有多个挂载磁盘则定义多个store_path,如下
#store_path1=.....
#store_path2=......

tracker_server=192.168.1.217:22122   # 配置 Tracker 服务器:IP
#如果有多个则配置多个 Tracker 
#tracker_server=192.168.1.218:22122
#tracker_server=192.168.1.219:22122

#配置http端口
http.server_port=80

7、启动 Storage
使用命令启动 Storage,然后查询是否启动。

# 启动命令
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
# 查看是否启动
ps -ef | grep fdfs

8、上传图片测试
这里我将一张名为 picture.jpg 的图片上传到 /root 目录下,使用这张图片进行上传图片测试。

FastDFS 安装成功可通过 /usr/bin/fdfs_test 测试上传、下载等操作。这里我们需要修改 /etc/fdfs/client.conf 配置文件:

vim client.conf

#----------------------------修改内容----------------------------
base_path=/home/yuqing/fastdfs 改为 base_path=/home/FastDFS
tracker_server 改为 tracker_server=192.168.1.217:22122

使用以下格式命令上传文件

#命令格式
/usr/bin/fdfs_test 客户端配置文件地址  upload  上传文件

#测试命令
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root picture.jpg

上传成功后会显示上传图片等信息,可以根据返回信息中提供文件信息去 /home/FastDFS/fdfs_storage/ 目录下查看我们刚刚上传好的图片。至此说明 FastDFS 的单点 Tracker 和 单点 Storage 都已经安装成功了。

9、配置 FastDFS-Nginx-Module

我们已经安装和测试好了 FastDFS,但是如果我们上传的是图片,那我们如何在浏览器中查看图片呢?这个就需要结合 Nginx 来进行配置了,目前我们把 FastDFS 和 Nginx 都安装好了,那么还需要一个 FastDFS-Nginx-Module 模块来完成这个任务,接下来我们就一起来配置一下 FastDFS-Nginx-Module 模块。

a)解压 fastdfs-nginx-module_v1.16.tar.gz,修改 config 文件路径:

#解压FastDFS-Nginx-Module
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
#进入安装目录下的 src 文件夹
cd /home/software/fastdfs-nginx-module/src/
#修改 config 文件
vim config

#------------------------修改内容------------------------
#将:
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
#修改为:
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"
#去掉了路径中的local

b) 将 fastdfs-nginx-module/src 下的 mod_fastdfs.conf 拷贝至 /etc/fdfs/ 下,并修改mod_fastdfs.conf 的内容:

cp mod_fastdfs.conf /etc/fdfs/

vim /etc/fdfs/mod_fastdfs.conf

#------------------------修改内容------------------------
base_path=/home/FastDFS

tracker_server=192.168.1.217:22122
#如果有多台,继续配置即可,例如:tracker_server=192.168.1.218:22122

url_have_group_name=true #url中包含group名称

store_path0=/home/FastDFS/fdfs_storage   #指定文件存储路径
#如果有多个,如下配置:store_path1=/home/FastDFS/fdfs_storage1

#将 libfdfsclient.so 拷贝至 /usr/lib 下:
cp /usr/lib64/libfdfsclient.so /usr/lib/

#创建 nginx/client 目录
mkdir -p /var/temp/nginx/client

c) 添加 FastDFS-Nginx-Module 模块

配置完成后,然后进入 Nginx 安装目录,执行添加模块命令:

#进入nginx安装目录
cd /home/software/nginx-1.12.2
#执行添加模块命令
./configure --add-module=/home/software/fastdfs-nginx-module/src
make
make install

d) 修改 Nginx 配置文件,测试图片访问
上面的配置完成后,我们需要修改一下 Nginx 的配置文件,进入 Nginx 目录,使用以下命令操作:

# 进入 Nginx 目录
cd /usr/local/nginx/conf
#修改配置文件
vim nginx.conf

#------------------------修改内容------------------------
#修改配置文件的 server 部分,如下所示:
server {
        listen       80;
        server_name  192.168.1.217;

        location /group1/M00/{
                root /home/FastDFS/fdfs_storage/data;
                ngx_fastdfs_module;
        }
}

f) 配置完成后,启动 Nginx:

#进入目录
cd /usr/local/nginx/sbin/
#启动 Nginx
./nginx
# 查看 Nginx 进程
ps -ef | grep nginx

测试:之前测试FastDFS上传过一张图片,上传成功后返回图片地址,用浏览器打开看图片是否显示即可,至此 FastDFS-Nginx-Module 配置完成。如果访问不了,请在防火墙开启80端口的访问权限。

本文参考由浅入深了解 FastDFS 分布式文件系统
感谢:AlanShelby

你可能感兴趣的:(Centos7部署FastDFS及Nginx)