本文主要是介绍Java FastDFS:(二)FastDFS的安装-10000字匠心巨作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
FastDFS的安装
- 1.核心安装
- 1.1 安装 FastDFS 依赖
- 1.2 解压 FastDFS 核心库
- 1.3 进入解压后的目录
- 1.4 编译安装
- 1.5 创建软连接
- 1.6 解压 FastDFS 主程序
- 1.7 进入 FastDFS 主程序源码目录
- 1.8 修改安装路径
- 1.9 编译安装
- 1.10 FastDFS 安装后资源简介
- 1.10.1 服务脚本
- 1.10.2 配置文件模板
- 1.10.3 内置命令
- 2.tracker 基础配置
- 2.1 创建跟踪服务配置文件
- 2.2 修改配置文件
- 2.3 创建自定义目录
- 2.4 修改启动服务脚本
- 2.5 启动服务
- 2.6 查看服务状态
- 2.7 停止服务
- 2.8 重启服务
- 2.9 设置开启自启
- 3.storage 基础配置
- 3.1 创建存储服务配置文件
- 3.2 修改配置文件
- 3.3 创建自定义目录
- 3.4 修改服务脚本
- 3.5 启动服务(要求 tracker 服务必须已启动)
- 3.6 查看服务状态
- 3.7 停止服务
- 3.8 重启服务
- 3.9 设置开机自启
- 4.客户端基础配置
- 4.1 创建客户端配置文件
- 4.2 修改配置文件
- 4.3 创建自定义目录
- 5.控制台测试 FastDFS
- 5.1 上传文件
- 5.2 删除文件
- 6.安装 Nginx 组件
- 6.1 解压 fastdfs-nginx-module_v1.16.tar.gz
- 6.2 修改 fastdfs-nginx-module_v1.16.tar.gz 源文件中的配置
- 6.3 安装 Nginx
- 6.3.1 安装 Nginx 需要的依赖
- 6.3.2 使用 SFTP 上传文件到 Linux
- 6.3.3 解压 Nginx
- 6.3.4 进入 Nginx 源码目录
- 6.3.5 配置 Nginx 安装信息
- 6.3.6 创建目录
- 6.3.7 编译安装
- 6.3.8 配置 fastdfs-nginx-module 模块配置文件
- 6.3.9 提供 FastDFS 需要的 HTTP 配置文件
- 6.3.10 创建 nginx 启动需要的软连接
- 6.3.11 创建网络访问存储服务的软连接
- 6.3.12 修改 nginx 配置文件
- 6.3.13 测试 WEB 访问存储服务中的文件
- 准备两个 Linux 服务器。两个服务器分别作为 tracker 服务器(跟踪服务器)和 storage 服务器(存储服务器)
- Tracker 服务器 : 192.168.2.109
- Storage 服务器 : 192.168.2.110
- 测试环境中,所有的安装包都存放在/root/upload 目录中。解压后的安装包根据具体命令查看。(/usr/local/fastdfs)
1.核心安装
- Tracker Server 和 Storage Server 完全一致的安装。
- 安装 FastDFS 5.08 版本
1.1 安装 FastDFS 依赖
- FastDFS 是 C 语言开发的应用。安装必须使用 make、cmake 和 gcc 编译器。
- yum install -y make cmake gcc gcc-c++
1.2 解压 FastDFS 核心库
- libfastcommon 是从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库
- cd /root/upload
- unzip libfastcommon-master.zip -d /usr/local/fastdfs
1.3 进入解压后的目录
- cd /usr/local/fastdfs/libfastcommon-master
1.4 编译安装
- libfastcommon 没有提供 make 命令安装文件。使用的是 shell 脚本执行编译和安装。shell脚本为 make.sh
- 编译
./make.sh - 安装
./make.sh install - 有固定的默认安装位置。在/usr/lib64 和/usr/include/fastcommon 两个目录中。
1.5 创建软连接
- 因为 FastDFS 主程序设置的 lib 目录是/usr/local/lib,所以需要创建软链接
- ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
- ln -s /usr/lib64/libfastcommon.so /usr/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
1.6 解压 FastDFS 主程序
- 本案例使用 5.08 版本 FastDFS
- cd /root/upload
- tar -zxf FastDFS_v5.08.tar.gz -C /usr/local/fastdfs
1.7 进入 FastDFS 主程序源码目录
- cd /usr/local/fastdfs/FastDFS
1.8 修改安装路径
- 此操作可选。在集群环境中使用默认安装路径安装。两种安装方式都尝试一下。
- vi /usr/local/fastdfs/FastDFS/make.sh
TARGET_PREFIX=$DESTDIR/usr -> TARGET_PREFIX=$DESTDIR/usr/local
1.9 编译安装
- ./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 中
1.10 FastDFS 安装后资源简介
1.10.1 服务脚本
- /etc/init.d/目录中,脚本文件是 - fdfs-storaged 和 fdfs-trackerd
- ls /etc/init.d/ | grep fdfs
1.10.2 配置文件模板
- /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 有效性。
1.10.3 内置命令
- /usr/local/bin/目录中。命令有若干。可通过命令在控制台访问 FastDFS。
- ls /usr/local/bin/ | grep fdfs
以上为通用安装,FastDFS 的跟踪服务和存储服务是通过配置实现的。后续内容为跟 踪服务和存储服务的具体配置。
2.tracker 基础配置
- 只在 tracker server 节点中配置。192.168.2.109
2.1 创建跟踪服务配置文件
- FastDFS 提供了配置文件模板,可以根据模板创建需要使用的配置文件。
- cd /etc/fdfs
- cp tracker.conf.sample tracker.conf
2.2 修改配置文件
- tracker.conf 配置文件用于描述跟踪服务的行为,需要进行下述修改:
- vi /etc/fdfs/tracker.conf
- port=22122 # 默认服务端口
- base_path=/home/yuqing/fastdfs -> base_path=/fastdfs/tracker(自定义目录)
- base_path 是 FastDFSTracker 启动后使用的根目录。也就是 data 和 logs 所在位置。
2.3 创建自定义目录
- 为配置文件中定义的 base_path 变量创建对应的目录
- mkdir -p /fastdfs/tracker
2.4 修改启动服务脚本
- vi /etc/init.d/fdfs_trackerd
- 将 PRG=/usr/bin/fdfs_trackerd 修改为 PRG=/usr/local/bin/fdfs_trackerd
2.5 启动服务
- /etc/init.d/fdfs_trackerd start
- 启动成功后,配置文件中 base_path 指向的目录中出现 FastDFS 服务相关数据目录(data 目录、logs 目录)
2.6 查看服务状态
- /etc/init.d/fdfs_trackerd status
- ps aux | grep fdfs
2.7 停止服务
- /etc/init.d/fdfs_trackerd stop
2.8 重启服务
- /etc/init.d/fdfs_trackerd restart
2.9 设置开启自启
- vi /etc/rc.d/rc.local
- 新增内容 - /etc/init.d/fdfs_trackerd start
3.storage 基础配置
- 只在 storage server 中配置。192.168.2.100
3.1 创建存储服务配置文件
- FastDFS 提供了配置文件模板,可以根据模板创建需要使用的配置文件
- cd /etc/fdfs
- cp storage.conf.sample storage.conf
3.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
- base_path - 基础路径。用于保存 storage server 基础数据内容和日志内容的目录。
- store_path0 - 存储路径。是用于保存 FastDFS 中存储文件的目录,就是要创建 256*256 个子目录的位置
- base_path 和 store_path0 可以使用同一个目录
- tracker_server - 跟踪服务器位置。就是跟踪服务器的 ip 和端口。
3.3 创建自定义目录
- mkdir -p /fastdfs/storage/base
- mkdir -p /fastdfs/storage/store
3.4 修改服务脚本
- vi /etc/init.d/fdfs_storaged
- 将 PRG=/usr/bin/fdfs_storaged 修改为 PRG=/usr/local/bin/fdfs_storaged
3.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 个目录。
3.6 查看服务状态
- /etc/init.d/fdfs_storaged status
- ps aux | grep fdfs
3.7 停止服务
- /etc/init.d/fdfs_storaged stop
3.8 重启服务
- /etc/init.d/fdfs_storaged restart
3.9 设置开机自启
- vi /etc/rc.d/rc.local
- 新增内容 - /etc/init.d/fdfs_storaged start
- 因启动前提为 tracker 服务必须已启动,不推荐开启自启。
4.客户端基础配置
- 不是必须的。就是用于使用命令行测试 FastDFS 才需要配置的。
4.1 创建客户端配置文件
- 在 tracker 服务结点所在服务器中配置客户端。同样通过配置文件模板创建对应配置文件
- cd /etc/fdfs
- cp client.conf.sample client.conf
4.2 修改配置文件
- client.conf 配置文件中主要描述客户端的行为,需要进行下述修改:
- vi /etc/fdfs/client.conf
- base_path=/home/yuqing/fastdfs -> base_path=/fastdfs/client (自定义目录)
- tracker_server=192.168.2.109:22122 -> tracker_server=tracker 服务 IP:22122
- base_path - 就是客户端命令行执行过程时临时数据存储位置。
4.3 创建自定义目录
- mkdir -p /fastdfs/client
5.控制台测试 FastDFS
- 命令所在: /usr/local/bin 目录。 (如果在安装 FastDFS 过程中,没有修改 make.sh 文件中的 TARGET_PREFIX 属性值,命令所在为/usr/bin 目录)
5.1 上传文件
- /usr/local/bin/fdfs_upload_file /etc/fdfs/client.conf /要上传的文件
- 上传结束后,返回 group1/M00/00/00/xxxxxxxxxx.xxx,检查 storage 服务结点中的 $store_path0/data/00/00/目录中是否有上传的文件(一般情况上传的文件按顺序保存在 $store_path0/data/00/00/目录中,不能完全保证)。
- 本次测试上传文件结果 : group1/M00/00/00/wKgCbltTYaeACDWgAAVCLEPUQWI.tar.gz
- 卷名 : group1
- 文件名 : M00/00/00/wKgCbltTYaeACDWgAAVCLEPUQWI.tar.gz
- 其中 M00 是一个虚拟目录,相当于 windows 中的快捷方式,引用的是$store_path0/data 目录
5.2 删除文件
- /usr/local/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/xxxxxxx.xxx
- 删除结束后,检查$store_path0/data/00/00/目录中是否还有文件。
6.安装 Nginx 组件
- 如果 FastDFS 中保存的是图片信息。希望在 WEB 应用中可以直接访问 FastDFS 中的图片进行显示。如果操作?
- 安装 Nginx 是为了 WEB 应用中可以使用 HTTP 协议直接访问 Storage 服务中存储的文件。在 storage 结点所在服务器安装 Nginx 组件。
- 需要安装两部分内容。
- Nginx 应用,在安装 nginx 应用的时候,同时要在 nginx 中增加一个 FastDFS 的组件。 Module。
6.1 解压 fastdfs-nginx-module_v1.16.tar.gz
- tar -zxf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fastdfs
6.2 修改 fastdfs-nginx-module_v1.16.tar.gz 源文件中的配置
- 此操作必须修改,否则 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\"'"
6.3 安装 Nginx
6.3.1 安装 Nginx 需要的依赖
- yum install -y gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel
6.3.2 使用 SFTP 上传文件到 Linux
- 进入到本地的应用所在目录
- cd /xxxx 目录
- sftp 192.168.2.110
- 输入用户名和密码。使用哪一个用户登录,上传的文件就在该用户对应的主目录下。如:root 用户,上传的文件在/root 目录中
- 上传的命令:
- put 文件名
- 下载的命令:
- get 文件名
6.3.3 解压 Nginx
- tar -zxf nginx-1.8.0.tar.gz -C /usr/local/fastdfs/
6.3.4 进入 Nginx 源码目录
- cd /usr/local/fastdfs/nginx-1.8.0/
6.3.5 配置 Nginx 安装信息
./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
- –add-module 必须定义,此配置信息是用于指定安装 Nginx 时需要加载的模块,如果未指定,Nginx 安装过程不会加载 fastdfs-nginx-module 模块,后续功能无法实现。(最后一条)
6.3.6 创建目录
- Nginx 运行时需要创建若干临时文件,如果默认安装不需创建此目录
- mkdir -p /var/temp/nginx
6.3.7 编译安装
- make
- make install
6.3.8 配置 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
6.3.9 提供 FastDFS 需要的 HTTP 配置文件
- 复制 FastDFS 安装包中的两个配置文件(http.conf 和 mime.types)到/etc/fdfs 目录中
- cp /usr/local/fastdfs/FastDFS/conf/http.conf /etc/fdfs/
- cp /usr/local/fastdfs/FastDFS/conf/mime.types /etc/fdfs/
6.3.10 创建 nginx 启动需要的软连接
- 创建软连接
- ln -s /usr/local/lib64/libfdfsclient.so /usr/lib64/libfdfsclient.so
- nginx 启动后,会在默认的/usr/lib64 目录中查找需要的 so 文件。如果在安装 FastDFS 时,修改了 make.sh 文件中的 TARGET_PREFIX 参数,则必须创建此软连接
6.3.11 创建网络访问存储服务的软连接
- 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 保存数据时使用的虚拟目录,需要将这个虚拟目录定位到真实数据目录上。
6.3.12 修改 nginx 配置文件
- cd /usr/local/nginx/conf
- vi nginx.conf
- 参考修改配置:(部分配置信息,不要完整复制)
user root; # Nginx 需要访问 linux 文件系统,必须有文件系统的权限。User root 代表 nginx 访问文件系统的权限是 root 用户权限。如果不开启权限,可能有 404 访问错误。
server{listen 8888; # storage 配置中,有 http.server_port=8888 的配置信息,必须一 致。配置文件是/etc/fdfs/storaged.conf server_name localhost; location ~/group([0-9])/M00{ ngx_fastdfs_module; }
}
6.3.13 测试 WEB 访问存储服务中的文件
- 使用浏览器查看 FastDFS 中保存的文件:
- http://ip:8888/group1/M00/00/00/x xxxxxx.xxx
- 测试上传的文件: group1/M00/00/00/wKgCbltTmv-ASTG2AAAmTx4ns0s172.jpg
- 测试 WEB 访问地址:
- http://192.168.2.110:8888/group1/M00/00/00/wKgCbltTmv-ASTG2AAAmTx4ns0s172.jpg
这篇关于Java FastDFS:(二)FastDFS的安装-10000字匠心巨作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!