FastDFS + Nginx搭建文件系统
2019-01-11 18:45
309 查看
前言
近期在学习搭建FastDFS文件系统,参考网上资料以及自己爬坑,总结如下。感谢在网上提供学习文档的大佬,在这里引用参考。
环境
阿里云、Linux、Cent OS 7.2
1. 安装libfastcommon
libfastcommon是从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库,基础环境,安装即可
# 在 ~/ (root) 下新建fastdfs-install-package文件夹,用来存放有关fastdfs相关的安装包 cd # mkdir fastdfs-install-package cd fastdfs-install-package/ # 下载libfastcommon安装包 wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz # 解压,进入到解压后的文件夹中 tar -zxvf V1.0.7.tar.gz cd libfastcommon-1.0.7/ # 编译安装 ./make ./make install # 安装之后可以看到libfastcommon.so被安装到:/usr/lib64/libfastcommon.so,由于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/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so # libfastcommon install done
2. 安装FastDFS
# 下载FastDFS安装包 wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz # 解压 tar -zxvf V5.05.tar.gz cd fastdfs-5.05/ # 编译安装 ./make.sh ./make.sh install # 编译安装完成之后,FastDFS会生成一些的可执行脚本,在/usr/bin/ 下,例如: /usr/bin/fdfs_trackerd # 跟踪器相关脚本 /usr/bin/fdfs_storaged # 仓库相关脚本 /usr/bin/stop.sh # 停止服务脚本 /usr/bin/restart.sh # 重启脚本 # 相关配置文件, /etc/fdfs/ 下 /etc/fdfs/tracker.conf.sample /etc/fdfs/storage.conf.sample /etc/fdfs/client.conf.sample /etc/fdfs/storage_id.conf.sample # 版本高会有这个文件
3. 配置FastDFS Tracker Server(跟踪服务器)
主要做调度工作,起到均衡的作用。负责管理所有的Storage Server和group,每个Storage在启动后会连接Tracker,告知Tracker Server当前Storage所属group等其他信息,并保持周期性心跳
# 进入tracker配置目录下 cd /etc/fdfs/ # 拷贝tracker.conf.sample文件,并更名为:tracker.conf cp tracker.conf.sample tracker.conf # 使用vim编辑(了解Vim编辑器的相关操作) vim tracker.conf -----tracker.conf 重点关注的几个配置----- # 是否禁用配置文件 disabled=false # 服务端口 port=22122 # tracker数据和日志目录路径(这个路径可自定义) base_path=/file-resource/fastdfs/tracker # HTTP 服务端口(端口可自定义,与其他服务端口不冲突即可) http.server_port=8501 -----配置完之后保存退出即可---------------- # 创建在tracker.conf中配置的base_path mkdir -p /file-resource/fastdfs/tracker # 操作到这一步,网上有很多例子是建立/usr/bin 到 /usr/local/bin 的软连接。本人在学习搭建过程中,在之后启动storage服务失败之后,更改配置文件,再次启动不生效的情况出现(也许操作不当或者未重新加载文件,如有高见请指点,谢谢),所有直接使用/usr/bin下关联对应的配置文件启动 # 启动tracker server /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start # 启动完之后,在之前配置的/file-resource/fastdfs/tracker目录下会生成data和logs文件夹,对应数据和日志目录。查看是否生成data和logs目录 ll /file-resource/fastdfs/tracker # 在logs下,会生成tracker.log文件,使用less命令查看相关日志,如果出现启动失败可以在这个日志文件查找 less tracker.log # 查看tracker server 是否启动成功。如果启动成功会看到fdfs_tracker服务已启动,并监听22122端口 netstat -unltp | grep fdfs # 在防火墙中打开22122端口,并重新载入(Cent OS 7以下开放端口的方式会不一样) firewall-cmd --zone=public --add-port=22122/tcp --permanent firewall-cmd --reload
4. 配置FastDFS Storage Server(存储服务器)
主要提供容量和备份服务,以group为单位,每个group内可以有多台storage server,数据互为备份。
# storage server配置与tracker server相似 # 进入storage配置目录下 cd /etc/fdfs/ # 拷贝storage.conf.sample文件,并更名为:storage.conf cp storage.conf.sample storage.conf # 使用vim编辑 vim storage.conf -----storage.conf 重点关注的几个配置----- # 是否禁用配置文件 disabled=false # 服务端口 port=23000 # 向tracker server发送心跳间隔时间,时间为秒 heart_beat_interval=30 # storage数据和日志目录路径(这个路径可自定义) base_path=/file-resource/fastdfs/storage # 存放文件时 storage server 支持多个路径,这里配置存放文件的基路径数目,通常只配一个目录 store_path_count=1 # 配置store_path_count设置的个数,上面的数量为1,所有配置store_path0即可,索引从0开始,依次累加 # 这里是存放文件的真正目录 store_path0=/file-resource/fastdfs/file # FastDFS 存储文件时,采用了两级目录。这里配置存放文件的目录个数 # 此处配置为256,storage server 在初次运行时,会在 store_path下自动创建 256*256 个子目录,如果为N,也就是N*N subdir_count_per_path=256 # 配置连接tracker server的host和port,这里写自己的服务器IP tracker_server=192.168.7.133:22122 # HTTP 服务端口(端口可自定义,与其他服务端口不冲突即可) http.server_port=8502 -----配置完之后保存退出即可---------------- # 配置完之后,创建对应的base_path和store_path0 mkdir -p /file-resource/fastdfs/storage mkdir -p /file-resource/fastdfs/file # 启动storage server,与tracker server一样的方式,会在/file-resource/fastdfs/storage下生成data和logs文件夹 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start # 启动完成,提示[ok],查看是否启动成功 netstat -unltp | grep fdfs # 发现并没有fdfs_storage相关服务,以及23000端口。然后去到/file-resource/fastdfs/storage/logs下 less storage.log # 连接失败,发现提示Connection time out,但是host和port都正确。经过爬坑,原来是阿里云没有配置相关安全组,配置相关安全组之后restart就可以了 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart # 同理,tracker server和storage server关闭命令 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop # 启动成功之后在/file-resource/fastdfs/file/data目录下会创建256*256的子目录 ls /file-resource/fastdfs/file/data # 在防火墙中打开23000端口,并重新载入 firewall-cmd --zone=public --add-port=22122/tcp --permanent firewall-cmd --reload
5.配置Client,上传文件测试
# 进入/etc/fdfs/下 cd /etc/fdfs/ # 拷贝client.conf.sample文件,并更名为:client.conf cp client.conf.sample client.conf # 使用vim编辑 vim client.conf -----client.conf 重点关注的几个配置----- # client 的数据和日志目录 base_path=/file-resource/fastdfs/client # Tracker端口 tracker_server=192.168.7.133:22122 -----配置完之后保存退出即可---------------- # 测试上传,将root下的一个页面上传到FastFDS上 /usr/bin/fdfs_upload_file /etc/fdfs/client.conf ~/404.html # 会生成:group1/M00/00/00/rBIcWlw4Ts2AKw0NAACTjyPXgeM055.html,其中: # group1:组名 # M00:磁盘名 # 00:一级目录名 # 00: 二级目录名 # rBIcWlw4Ts2AKw0NAACTjyPXgeM055.html:文件名 # 得到remoteFileName,说明上传成功,但是无法访问,所有安装Nginx来访问
6. 安装Nginx
# 安装Nginx所需环境 # gcc yum install gcc-c++ # PCRE pcre-devel yum install -y pcre pcre-devel # zlib yum install -y zlib zlib-devel # OpenSSL yum install -y openssl openssl-devel # 下载Nginx,(目录在~/fastdfs-install-package下) wget -c https://nginx.org/download/nginx-1.12.1.tar.gz # 解压 tar -zxvf nginx-1.12.1.tar.gz cd nginx-1.12.1/ # 使用默认配置 ./configure # 编译安装 make make install # 启动Nginx cd /usr/local/nginx/sbin/ ./nginx # nginx相关命令 ./nginx -s stop ./nginx -s quit ./nginx -s reload # Nginx默认监听80端口,防火墙打开80端口 firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload # 拼接之前生成的地址,可以看到效果 http://192.168.7.113/group1/M00/00/00/rBIcWlw4Ts2AKw0NAACTjyPXgeM055.html # 为了每次不需要拼接,修改nginx.conf,将/group1/M00映射到/file-resource/fastdfs/file/data vim /usr/local/nginx/conf/nginx.conf --------- # 在server中加入如下配置 location /group1/M00 { alias /file-resource/fastdfs/file/data; } --------- # 重启Nginx /usr/local/nginx/sbin/nginx -s reload # 再次访问,完成搭建
相关文章推荐
- nginx+FastDFS文件系统搭建
- FastDFS + Nginx搭建文件系统
- Ubuntu系统下nginx和ftp搭建图片服务器,处理外网访问不到文件问题
- 搭建FastDFS主从文件系统
- 用FastDFS一步步搭建文件管理系统
- 用FastDFS一步步搭建文件管理系统
- fastdfs/nginx文件系统安装配置
- 通过Nginx访问FastDFS文件系统并进行图片文件裁剪的性能测试和分析
- 通过docker-compose一键搭建Nginx带动的FDFS服务 分布式文件上传系统
- nginx + FastDFS分布式文件服务器搭建
- 通过Nginx访问FastDFS文件系统并进行图片文件裁剪的性能测试和分析
- FastDFS文件分布式系统搭建说明文档
- 分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试
- 用FastDFS一步步搭建文件管理系统
- nginx_upload+javaWEB文件上传系统搭建
- Centos7 搭建FastDFS文件管理系统及简单的迁移方法
- 用FastDFS一步步搭建文件管理系统
- 通过Nginx訪问FastDFS文件系统并进行图片文件裁剪的性能測试和分析
- fastdfs文件系统单机环境搭建和spring boot整合(已验证)
- 使用nginx搭建集群tomcat8,redis实现session共享,文件共享问题