CentOS8.4安装 FastDFS与Nginx

Posted Eric%258436

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS8.4安装 FastDFS与Nginx相关的知识,希望对你有一定的参考价值。

** 如有错误,感谢指正**

如有错误,感谢指正,请私信博主,有辛苦红包,拜“一字之师”。

请根据目录寻找自己需要的段落

导语:本博客为个人整理Java学习记录帖,如有错误,感谢指正。系统学习,欢迎持续关注,后续陆陆续续更新
Java 交流qq群 383245788

本文旨在帮助大家解决一下安装问题,本人笨笨踩坑四个半小时,终于搭建成功。希望本文对大家有帮助

搭建环境

CentOS-8.4(server)、FastDFS_v5.08、fastdfs-nginx-module_v1.16、libfastcommon-master、nginx-1.8.0
所有包 上传至 /root/upload/ 目录。由于我只开了这一个虚拟机,伪分布式,并没有搭建真正的分布式,多机器配置暂未学习。

FastDFS核心安装

Tracker Server 和 Storage Server 完全一致安装。
1.安装依赖
FastDFS 是 C 语言开发的应用。安装必须使用 make、cmake 和 gcc 编译

yum install -y make cmake gcc gcc-c++

本人建议将nginx和别的服务器软件的依赖一并安装,常用依赖如下,不全。
gcc 、pcre 、zlib、openssl

yum install -y gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel

2.解压FastDFS核心库
libfastcommon 是从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库

cd /root/upload
unzip libfastcommon-master.zip -d /usr/local/fastdfs

3.进入解压后的目录

cd /usr/local/fastdfs/libfastcommon-master

4.编译安装
libfastcommon 没有提供 make 命令安装文件。使用的是 shell 脚本执行编译和安装。有固定的默认安装位置。在/usr/lib64 和/usr/include/fastcommon 两个目录中。
编译

./make.sh

安装

./make.sh install

5.创建软连接
因为 FastDFS 主程序设置的 lib 目录是/usr/local/lib,所以需要创建软链接

ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/local/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/local/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

6.解压 FastDFS 主程序

cd /root/upload 
tar -zxf FastDFS_v5.08.tar.gz -C /usr/local/fastdfs

7.修改安装路径

cd /usr/local/fastdfs/FastDFS
vi /usr/local/fastdfs/FastDFS/make.sh

找到 TARGET_PREFIX=$DESTDIR/usr
修改结果如下

TARGET_PREFIX=$DESTDIR/usr/local

8.编译安装

./make.sh
./make.sh install

安装后,FastDFS 主程序所在位置是:
/usr/local/bin - 可执行文件所在位置。默认安装在/usr/bin 中。
/etc/fdfs - 配置文件所在位置。就是默认位置。
/usr/local/lib64 - 主程序代码所在位置。默认在/usr/bin 中。
/usr/local/include/fastdfs - 包含的一些插件组所在位置。默认在/usr/include/fastdfs 中。
9.FastDFS 安装后资源简介

  • 服务脚本

/etc/init.d/目录中,脚本文件是 - fdfs-storaged 和 fdfs-tracker

ls /etc/init.d/ | grep fdfs
  • 配置文件模板

/etc/fdfs/ 目 录 中 , 配 置 文 件 是 - client.conf.sample 、 storage.conf.sample 和tracker.conf.sample

ls /etc/fdfs/

tracker.conf.sample - 跟踪器服务配置文件模板
storage.conf.sample - 存储服务器配置文件模板
client.conf.sample - FastDFS 提供的命令行客户端配置文件模板。可以通过命令行测试FastDFS 有效性

  • 内置命令

/usr/local/bin/目录中。命令有若干。可通过命令在控制台访问 FastDFS

ls /usr/local/bin/ | grep fdfs

以上为通用安装,FastDFS 的跟踪服务和存储服务是通过配置实现的。后续内容为跟踪服务和存储服务的具体配置。

tracker 基础配置

1.创建跟踪服务配置文件
FastDFS 提供了配置文件模板,可以根据模板创建需要使用的配置文件。

cd /etc/fdfs
cp tracker.conf.sample tracker.conf

2.修改配置文件
tracker.conf 配置文件用于描述跟踪服务的行为,需要进行下述修改:

vi /etc/fdfs/tracker.conf

注意:port=22122 # 默认服务端

找到base_path=/home/yuqing/fastdfs 修改为

base_path=/fastdfs/tracker (自定义目录,可自行依照自己喜好修改)

base_path 是 FastDFSTracker 启动后使用的根目录。也就是 data 和 logs 所在位置。
3.创建自定义目录
为配置文件中定义的 base_path 变量创建对应的目录。

mkdir -p /fastdfs/tracker

4.修改启动服务脚本

vi /etc/init.d/fdfs_trackerd

将 PRG=/usr/bin/fdfs_trackerd 修改为

PRG=/usr/local/bin/fdfs_track

5.服务相关
启动服务

启动成功后,配置文件中 base_path 指向的目录中出现 FastDFS 服务相关数据目录(data目录、logs 目录)

/etc/init.d/fdfs_trackerd start

查看服务状态

/etc/init.d/fdfs_trackerd status
ps aux | grep fdfs

停止服务

/etc/init.d/fdfs_trackerd stop

重启服务

/etc/init.d/fdfs_trackerd restart

设置开机自启
未设置

storage 基础配置

1.创建存储服务配置文件
FastDFS 提供了配置文件模板,可以根据模板创建需要使用的配置文件。

cd /etc/fdfs
cp storage.conf.sample storage.conf

2.修改配置文件
storage.conf 配置文件用于描述存储服务的行为,需要进行下述修改:

vi /etc/fdfs/storage.conf
base_path=/home/yuqing/fastdfs -> base_path=/fastdfs/storage/base (自定义目录)
store_path0=/home/yuqing/fastdfs -> store_path0=/fastdfs/storage/store(自定义目录)
tracker_server=192.168.2.109:22122 -> tracker_server=tracker服务IP:22122 我是本机所以修改为192.168.8.13322122

base_path - 基础路径。用于保存 storage server 基础数据内容和日志内容的目录。
store_path0 - 存储路径。是用于保存 FastDFS 中存储文件的目录,就是要创建 256*256个子目录的位置。
base_path 和 store_path0 可以使用同一个目录。
tracker_server - 跟踪服务器位置。就是跟踪服务器的 ip 和端口。

3.创建自定义目录

mkdir -p /fastdfs/storage/base
mkdir -p /fastdfs/storage/store

4.修改服务脚本

vi /etc/init.d/fdfs_storaged

将 PRG=/usr/bin/fdfs_storaged 修改为

PRG=/usr/local/bin/fdfs_storaged

5.服务相关
要求 tracker 服务必须已启动
启动服务

/etc/init.d/fdfs_storaged start

启动成功后,配置文件中 base_path 指向的目录中出现 FastDFS 服务相关数据目录(data目录、logs 目录),配置文件中的 store_path0 指向的目录中同样出现 FastDFS 存储相关数据录(data 目录)。其中$store_path0/data/目录中默认创建若干子孙目录(两级目录层级总计 256*256 个目录),是用于存储具体文件数据的。

Storage 服务器启动比较慢,因为第一次启动的时候,需要创建 256*256 个目录。
查看服务状态

/etc/init.d/fdfs_storaged status
ps aux | grep fdfs

停止服务

/etc/init.d/fdfs_storaged stop

重启服务

/etc/init.d/fdfs_storaged restart

设置开机自启
未开启。因启动前提为 tracker 服务必须已启动,不推荐开启自启。

安装 Nginx 组件

在安装 nginx 应用的时候,同时要在 nginx 中增加一个 FastDFS 的组件。Module。

1.解压 组件

tar -zxf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fastdfs

2.修改 fastdfs-nginx-module源文件中的配置
此操作必须修改,否则 Nginx 编译会报错。

cd /usr/local/fastdfs/fastdfs-nginx-module/src
vi /usr/local/fastdfs/fastdfs-nginx-module/src/config

参数是用于配置安装 nginx 中的 FastDFS 组件的时候,在什么位置查找 FastDFS 核心代码。
源数据:

ngx_addon_name=ngx_http_fastdfs_module
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/local/include/fastdfs /usr/local/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
CFLAGS="$CFLAGS
-D_FILE_OFFSET_BITS=64
-DFDFS_OUTPUT_CHUNK_SIZE='256*1024'
-DFDFS_MOD_CONF_FILENAME='\\"/etc/fdfs/mod_fastdfs.conf\\"'"

修 改 后 内 容:
如 果 安 装 FastDFS 时 , 没 有 修 改 make.sh 文 件 (默认安装), 则 改 为 :CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

如下
ngx_addon_name=ngx_http_fastdfs_module
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/local/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
CFLAGS="$CFLAGS
-D_FILE_OFFSET_BITS=64
-DFDFS_OUTPUT_CHUNK_SIZE='256*1024'
-DFDFS_MOD_CONF_FILENAME='\\"/etc/fdfs/mod_fastdfs.conf\\"'"

安装 Nginx

依赖

yum install -y gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel

1.解压 Nginx

tar -zxf nginx-1.8.0.tar.gz -C /usr/local/fastdfs/

2.进入 Nginx 源码目录

cd /usr/local/fastdfs/nginx-1.8.0/

3.配置 Nginx 安装信息
–add-module 必须定义,此配置信息是用于指定安装 Nginx 时需要加载的模块,如果未指定,Nginx 安装过程不会加载 fastdfs-nginx-module 模块,后续功能无法实现。

我在配置这的时候,反斜杠后面有空格,导致一直报错。

./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/fastdfs-nginx-module/src

4.创建目录
Nginx 运行时需要创建若干临时文件,如果默认安装不需创建此目录。

mkdir -p /var/temp/nginx

5.编译安装
此过程我也有报错,但结果未整理,报错信息,网上都可以查到解决办法。

make
make install

6.配置 fastdfs-nginx-module 模块配置文件
复制配置文件/usr/local/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf 到/etc/fdfs 目录中

cp /usr/local/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
cd /etc/fdfs/

修改配置文件 mod_fastdfs.conf

vi mod_fastdfs.conf

源配置

connect_timeout=2 #连接超时时间,单位秒
tracker_server=tracker:22122 #tracker 服务结点
url_have_group_name = false #URL 中是否包含 group 名称
store_path0=/home/yuqing/fastdfs # storage 服务结点的存储位置,与配置 storage 结点一致

参考修改值

connect_timeout=10
tracker_server=192.168.2.109:22122
url_have_group_name = true
store_path0=/fastdfs/storage/store

7.提供 FastDFS 需要的 HTTP 配置文件

cp /usr/local/fastdfs/FastDFS/conf/http.conf /etc/fdfs/
cp /usr/local/fastdfs/FastDFS/conf/mime.types /etc/fdfs/

8.创建 nginx 启动需要的软连接
nginx 启动后,会在默认的/usr/lib64 目录中查找需要的 so 文件。如果在安装 FastDFS时,修改了 make.sh 文件中的 TARGET_PREFIX 参数,则必须创建此软连接

ln -s /usr/local/lib64/libfdfsclient.so /usr/lib64/libfdfsclient.so

9.创建网络访问存储服务的软连接
如果报找不到目录,就创建个/fastdfs/storage/store/data目录

ln -s /fastdfs/storage/store/data/ /fastdfs/storage/store/data/M00

在上传文件到 FastDFS 后,FastDFS 会返回 group1/M00/00/00/xxxxxxxxxx.xxx。其中group1 是卷名,在 mod_fastdfs.conf 配置文件中已配置了 url_have_group_name,以保证 URL解析正确。而其中的 M00 是 FastDFS 保存数据时使用的虚拟目录,需要将这个虚拟目录定位到真实数据目录上。

10.修改 nginx 配置文件

cd /usr/local/nginx/conf
vi nginx.conf

需要修改三处

  1. 修改用户

    2.在原有server前面加上这个。跳转用。
    3. 修改pid
    注释打开,修改后面路径。不设置,重启后,启动nginx服务会失败。因为原本pid文件会被删除。然后报找不到文件错误,无法启动。
pid        /usr/local/nginx/nginx.pid;

11.启动nginx
禁用防火墙

systemctl stop firewalld.service
systemctl status firewalld.service
systemctl disable firewalld.service
systemctl list-unit-files |grep firewalld

启动

cd /usr/local/nginx/sbin/
./nginx

查看状态

ps aux|grep nginx

关闭nginx

立即停止服务:这种方法比较强硬,无论进程是否在工作,都直接停止进程。

./nginx -s stop

从容停止服务:这种方法较stop相比就比较温和一些了,需要进程完成当前工作后再停止。

./nginx -s quit

killall 方法杀死进程
直接杀死进程,在上面无效的情况下使用,态度强硬,简单粗暴!

killall nginx

12.验证配置成功
浏览器访问虚拟机ip。
我还有一篇配置静态ip的博客。欢迎到访CentOS配置静态IP

到这里就配置结束了。希望对你有帮助。

以上是关于CentOS8.4安装 FastDFS与Nginx的主要内容,如果未能解决你的问题,请参考以下文章

阿里云centos8.4 64位 nginx的安装与运行(在无数次错误中得出,实操通过)

FastDFS+nginx安装与配置

FastDFS安装与nginx反向代理配置

Nginx-fastdfs安装与配置

FastDFS与Nginx结合搭建文件服务器,并内网穿透实现公网访问

FastDFS与Nginx的搭建及遇到的问题