保姆级教程-分布式文件系统FastDFS(高效存储,有效解决大量资源上传下载)(二)

简介: 保姆级教程-分布式文件系统FastDFS(高效存储,有效解决大量资源上传下载)

四.安装Nginx和fastdfs-nginx-module模块

  1. 下载Nginx安装包
wget http://nginx.org/download/nginx-1.14.2.tar.gz


image.png

  1. 下载fastdfs-nginx-module安装包
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz

88f6698b660547e4ae1eb34bd90c8d6b.png

  1. 解压nginx
tar -zxvf nginx-1.14.2.tar.gz


061c15244ff447ce842284187008f8dd.png

  1. 解压fastdfs-nginx-module
tar -xvf V1.20.tar.gz

0b8c07e99e664f779d5e723f82e5ec55.png

  1. 进入nginx目录
cd nginx-1.14.2

7308522818ba4f09a0beb5a4e9ead2c4.png

  1. gcc 安装

安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装。

yum install gcc-c++

0ee50aa2252447bd8935e87353dedb28.png

  1. PCRE pcre-devel 安装

PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。

yum install -y pcre pcre-devel
  1. zlib 安装

zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

yum install -y zlib zlib-devel


  1. OpenSSL 安装

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。

nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

yum -y install openssl openssl-devel

71bc236cce5041c1a04dc2c047787085.png


  1. 配置,并加载fastdfs-nginx-module模块
./configure --prefix=/usr/local/nginx-fast --add-module=/home/nginx-linux/fastdfs-nginx-module-1.


d406a613bcc243efbbef78ed55f90a6b.png


  1. 编译安装
make


ba37c7af28e64bb7b4eb940116039a34.png


make时出现问题请参考:https://chonglian.blog.csdn.net/article/details/122754262?spm=1001.2014.3001.5502

make install


3befa8003d0f4f37b6d9cfcb7acbef09.png


nginx启动,停止,重启命令

#上方nginx的安装目录
cd /usr/local/nginx-fast/sbin/
#启动
./nginx 
#此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程
./nginx -s stop 
#此方式停止步骤是待nginx进程处理任务完毕进行停止
./nginx -s quit 
#重启
./nginx -s reload

配置Nginx和fastdfs-nginx-module模块

  1. 打开mod-fastdfs.conf所在位置拷贝到/etc/fdfs文件目录下
cd /home/nginx-linux/fastdfs-nginx-module-1.20/src/
cp mod_fastdfs.conf /etc/fdfs/
  1. 进入/etc/fdfs修改mod-fastdfs.conf
#基础路径,确保文件夹存在
base_path=/home/fastdfs/nginx_mod
#tracker的地址
tracker_server=xx.xxx.xxx.xxx:22122 
#url是否包含group名称
url_have_group_name=true 
#需要和storage配置的相同
storage_server_port=23000
#存储路径个数,需要和store_path个数匹配
store_path_count=1  
#文件存储的位置
store_path0=/home/fastdfs/storage/files

86f5a107949f4c49aa6dbc5ab8518716.png3194b8308838425cacbe6f67d47de939.png


  1. base_path 创建基础目录
mkdir /home/fastdfs/nginx_mod


ea9247394df7467189b27e3899e4f2b7.png

  1. 配置nginx,80端口server增加location
cd /usr/local/nginx-fast/conf/


location ~ /group[1-9]/M0[0-9] {
       ngx_fastdfs_module;
}


d824eb71cf9d493ca3052002614c7ec3.png

上传下载测试

完成上面诸多步骤后,我们的fastDFS就安装完毕了下面我们进行上传下载删除操作测试。

  1. 启动nginx
/usr/local/nginx-fast/sbin/nginx -c /usr/local/nginx-fast/conf/nginx.conf

ad2ed2a9cb9e457695f8feb6c403e38c.png

通过命令检查我们nginx是否启动成功(两个进程)

ps -ef|grep nginx


e545ed565fdd4af6a427e77584eb78dd.png


上传文件

  1. 进入/etc/fdfs目录,有cp命令拷贝client.conf.sample,删除.sample后缀作为正式文件。

63994ed773084d6cb91506e9437836a3.png

  1. 修改client.conf相关配置
#基础文件路径需要提前创建
base_path=/home/fastdfs/client
#tracker服务器IP地址和端口号
tracker_server=xx.xxx.xxx.xxx:22122
#tracker服务器的http端口号,必须和tracker的设置对应起来
http.tracker_server_port=80 

82d46d7c686f49cb98ba88d340e32d3c.png


e82ed5e06b5a4146a3ce812ed158e8e1.png

  1. 创建基础路径文件夹
mkdir /home/fastdfs/client

d900a4f9515144e69966f6167c3a8157.png

  1. 重启 trackerd 与 storage
fdfs_trackerd /etc/fdfs/tracker.conf restart


fdfs_storaged /etc/fdfs/storage.conf restart

重启完记得查看进程有没有启动成功

ps -ef|grep fdfs

4cc9b9585e004b26ac7cb279a135d29b.png


  1. 回到 ~目录创建要上传的文件aa.txt,内容为测试文件
cd ~


vim aa.txt


a5fe51ae039847beb3b3d8655f8e9561.png

def1a1e7cb9044cb918f5a83bbe715bd.png

  1. 上传
fdfs_test /etc/fdfs/client.conf upload aa.txt


e99982ba64c34ecbbd080575204d84f5.png


上传成功后这里面有几处重要信息


#group_name:组名    ip_addr:ip地址  port:端口号
group_name=group1, ip_addr=xx.xxx.xxx.xx, port=23000
storage_upload_by_filename
#remote_filename:远程文件名称(决定我们的文件存放在哪个磁盘目录下) M00:表示第一个磁盘路径=/home/fastdfs/storage/files/data 
group_name=group1, remote_filename=M00/00/00/rBOAlmH2mmqANl6tAAAADi991u4762.txt
source ip address: 172.19.128.150
file timestamp=2022-01-30 22:02:18
file size=14
file crc32=796776174
example file url: http://39.103.137.90/group1/M00/00/00/rBOAlmH2mmqANl6tAAAADi991u4762.txt
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/rBOAlmH2mmqANl6tAAAADi991u4762_big.txt
source ip address: 172.19.128.150
file timestamp=2022-01-30 22:02:18
file size=14
file crc32=796776174
example file url: http://39.103.137.90/group1/M00/00/00/rBOAlmH2mmqANl6tAAAADi991u4762_big.txt


相关文章
|
1月前
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
30 1
|
1月前
|
存储 机器学习/深度学习 缓存
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
44 1
|
1月前
|
分布式计算 资源调度 Hadoop
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
47 1
|
1月前
|
SQL NoSQL MongoDB
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
41 0
|
3月前
|
机器学习/深度学习 分布式计算 Cloud Native
云原生架构下的高性能计算解决方案:利用分布式计算资源加速机器学习训练
【8月更文第19天】随着大数据和人工智能技术的发展,机器学习模型的训练数据量和复杂度都在迅速增长。传统的单机训练方式已经无法满足日益增长的计算需求。云原生架构为高性能计算提供了新的可能性,通过利用分布式计算资源,可以在短时间内完成大规模数据集的训练任务。本文将探讨如何在云原生环境下搭建高性能计算平台,并展示如何使用 PyTorch 和 TensorFlow 这样的流行框架进行分布式训练。
128 2
|
3月前
|
机器学习/深度学习 资源调度 PyTorch
面向大规模分布式训练的资源调度与优化策略
【8月更文第15天】随着深度学习模型的复杂度不断提高,对计算资源的需求也日益增长。为了加速训练过程并降低运行成本,高效的资源调度和优化策略变得至关重要。本文将探讨在大规模分布式训练场景下如何有效地进行资源调度,并通过具体的代码示例来展示这些策略的实际应用。
383 1
|
3月前
|
存储 SQL 运维
“震撼发布!PolarDB-X:云原生分布式数据库巨擘,超高并发、海量存储、复杂查询,一网打尽!错过等哭!”
【8月更文挑战第7天】PolarDB-X 是面向超高并发、海量存储和复杂查询场景设计的云原生分布式数据库系统
110 1
|
3月前
|
Oracle Java 关系型数据库
分布式锁设计问题之由于GC导致的Client同时操作共享资源的问题如何解决
分布式锁设计问题之由于GC导致的Client同时操作共享资源的问题如何解决
|
4月前
|
存储 关系型数据库 分布式数据库
PolarDB,阿里云的云原生分布式数据库,以其存储计算分离架构为核心,解决传统数据库的扩展性问题
【7月更文挑战第3天】PolarDB,阿里云的云原生分布式数据库,以其存储计算分离架构为核心,解决传统数据库的扩展性问题。此架构让存储层专注数据可靠性,计算层专注处理SQL,提升性能并降低运维复杂度。通过RDMA加速通信,多副本确保高可用性。资源可独立扩展,便于成本控制。动态添加计算节点以应对流量高峰,展示了其灵活性。PolarDB的开源促进了数据库技术的持续创新和发展。
297 2
|
5月前
|
存储 搜索推荐 Java
微服务SpringCloud ES分布式全文搜索引擎简介 下载安装及简单操作入门
微服务SpringCloud ES分布式全文搜索引擎简介 下载安装及简单操作入门
77 2

热门文章

最新文章