保姆级教程-分布式文件系统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


相关文章
|
2月前
|
存储 Oracle 关系型数据库
分布式事物【Seata实现、下载启动Seata服务、搭建聚合父工程构建】(四)-全面详解(学习总结---从入门到深化)
分布式事物【Seata实现、下载启动Seata服务、搭建聚合父工程构建】(四)-全面详解(学习总结---从入门到深化)
45 0
|
1月前
|
算法 数据处理 异构计算
CatBoost高级教程:分布式训练与大规模数据处理
CatBoost高级教程:分布式训练与大规模数据处理【2月更文挑战第15天】
244 14
|
2月前
|
机器学习/深度学习 分布式计算 Python
OpenAI Gym 高级教程——分布式训练与并行化
OpenAI Gym 高级教程——分布式训练与并行化
198 1
|
Java 数据库连接 mybatis
分布式事物【Seata实现、下载启动Seata服务、搭建聚合父工程构建】(四)-全面详解(学习总结---从入门到深化)(下)
分布式事物【Seata实现、下载启动Seata服务、搭建聚合父工程构建】(四)-全面详解(学习总结---从入门到深化)
37 0
|
存储 Oracle 关系型数据库
分布式事物【Seata实现、下载启动Seata服务、搭建聚合父工程构建】(四)-全面详解(学习总结---从入门到深化)(上)
分布式事物【Seata实现、下载启动Seata服务、搭建聚合父工程构建】(四)-全面详解(学习总结---从入门到深化)
34 0
|
3月前
|
数据库 OceanBase
OceanBase数据库是一个分布式集群产品,在部署时对硬件资源有特定的需求
OceanBase数据库是一个分布式集群产品,在部署时对硬件资源有特定的需求【1月更文挑战第12天】【1月更文挑战第56篇】
29 2
|
4月前
|
编译器 定位技术 开发工具
分布式版本控制系统Git的下载、安装与使用其复制GitHub项目代码的方法
分布式版本控制系统Git的下载、安装与使用其复制GitHub项目代码的方法
|
4月前
|
分布式计算 Hadoop Java
百度搜索:蓝易云【HBase分布式安装配置教程。】
以上是一个简要的HBase分布式安装和配置教程。需要注意的是,HBase的配置和部署涉及更多的细节和参数设置,取决于你的特定环境和需求。建议你参考HBase官方文档或其他可靠资源,以获得更详细和全面的指导。
36 6
|
5月前
|
NoSQL Java 数据库连接
分布式系列教程(46) -分布式定时任务锁(ShedLock实现)
分布式系列教程(46) -分布式定时任务锁(ShedLock实现)
126 0
|
5月前
|
Unix Linux Nacos
分布式系列教程(45) -安装Nacos(Docker或安装包)
分布式系列教程(45) -安装Nacos(Docker或安装包)
87 1

热门文章

最新文章