欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

精品:CentOS7和FastDFS搭建图片服务器

程序员文章站 2022-07-09 21:06:57
...

简介

FastDFS 是一个开源的高性能分布式文件系统(Distributed File System),它对文件进行管理,主要功能包括功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。

FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。
精品:CentOS7和FastDFS搭建图片服务器

  • Client:客户端,作为业务请求的发起方,通过专有接口,使用TCP/IP协议与跟踪器服务器或存储节点进行数据交互。
  • Tracker Server:FastDFS的协调者,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳,tracker根据storage的心跳信息,建立group==>[storage serverlist]的映射表。
  • Storage Server:存储服务器,主要提供容量和备份服务;以组(卷,group或volume)为单位组织,一个group内包含多台storage机器,数据互为备份,存储空间以group内容量最小的storage为准,所以建议group内的多个storage尽量配置相同,以免造成存储空间的浪费。

软件

  • CentOS7
  • libfastcommon 1.0.38
  • fastdfs 5.11
  • nginx-1.15.2

注意:软件的版本要一致,否则有可能出现版本不兼容的问题

1.下载安装 libfastcommon

  1. 下载libfastcommon
# wget https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz
  1. 解压文件
# tar -zxvf V1.0.38.tar.gz
# cd libfastcommon-1.0.38
  1. 编译安装
# ./make.sh
# ./make.sh install
  1. 创建软链接,因为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

2.下载安装FastDFS

  1. 下载FastDFS
# wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz
  1. 解压
# tar -zxvf V5.11.tar.gz
# cd fastdfs-5.11
  1. 编译安装
# ./make.sh
# ./make.sh install
  1. 安装结果
  • 默认安装目录,执行命令cd /etc/init.d可看到:
/etc/init.d/fdfs_storaged
/etc/init.d/fdfs_tracker
  • 配置文件: cd /etc/fdfs,有四个.sample后缀的文件(自动生成的fdfs模板配置文件)
/etc/fdfs/client.conf.sample
/etc/fdfs/storage.conf.sample
/etc/fdfs/storage_ids.conf.sample
/etc/fdfs/tracker.conf.sample
  • 执行命令:ls -la /usr/bin/fdfs* ,查看命令脚本:
    精品:CentOS7和FastDFS搭建图片服务器
  1. 设置脚本软链接
    FastDFS 服务脚本设置的 bin 目录是 /usr/local/bin, 但实际命令安装在 /usr/bin/ 下,可以通过建立 /usr/bin 到 /usr/local/bin 的软链接
# ln -s /usr/bin/fdfs_trackerd   /usr/local/bin
# ln -s /usr/bin/fdfs_storaged   /usr/local/bin
# ln -s /usr/bin/stop.sh         /usr/local/bin
# ln -s /usr/bin/restart.sh      /usr/local/bin

3.创建fastdfs文件存储目录 /home/hc/fastdfs/

在/home/hc/目录下创建文件夹fastdfs,作为FastDFS的数据存放根目录

4.配置Tracker服务

  1. 进入/etc/fdfs目录,通过cp命令复制tracker.conf.sample,重命名为:tracker.con(删除.sample后缀),作为正式文件
# cd /etc/fdfs/
# cp tracker.conf.sample  tracker.conf
# vi tracker.conf
  1. 编辑tracker.conf:vi tracker.conf,修改相关参数(只需要修改: base_path 和 http.server_port 即可)
# 提供服务的端口,默认:22122
port=22122
# Tracker 存储data和log的根路径,根目录必须存在,子目录会自动创建
base_path=/home/hc/fastdfs


# http端口,需要和nginx相同
http.server_port=80
  1. 启动tracker(支持start|stop|restart):
方式一:
# /etc/init.d/fdfs_trackerd start
方式二:
# service fdfs_trackerd start

成功启动后,会在 /home/lyy/fastdfs(配置的base_path)下创建 data、logs 两个目录。
精品:CentOS7和FastDFS搭建图片服务器

  1. 查看端口情况,命令:netstat -apn|grep fdfs
    精品:CentOS7和FastDFS搭建图片服务器

如果22122端口正在被监听,则Tracker服务安装成功。
Tracker 关闭命令:service fdfs_trackerd stop

  1. 设置Tracker开机启动
# chkconfig fdfs_trackerd on

5.配置Storage服务

  1. 进入/etc/fdfs目录,有cp命令拷贝storage.conf.sample,重命名为 storage.conf(删除.sample)后缀作为正式文件
# cd /etc/fdfs/
# cp storage.conf.sample storage.conf
# vi storage.conf

3.编辑storage.conf,修改相关参数(base_path、store_path0、tracker_server、http.server_port)

# 配置文件是否不生效,false 为生效
disabled=false 

# 指定此 storage server 所在 组()
group_name=group1

# storage server 服务端口,storge默认23000
port=23000

# 心跳间隔时间,单位为秒 (这里是指主动向 tracker server 发送心跳)
heart_beat_interval=30

# 存储路径个数,需要和store_path个数匹配
store_path_count=1

# storage存储data和log的跟路径,必须提前创建好
base_path=/home/hc/fastdfs

# 如果为空,则使用base_path,此处设置两者一样
store_path0=/home/hc/fastdfs

#如果本参数只为 N(如: 256),那么 storage server 在初次运行时,会在 store_path 下自动创建 N * N 个存放文件的子目录
subdir_count_per_path=256

# 配置该storage监听的tracker的ip和port
#有多个 tracker server 时,每个 tracker server 写一行
tracker_server=172.16.85.139:22122

# 允许系统同步的时间段 (默认是全天) 。一般用于避免高峰同步产生一些问题而设定。
sync_start_time=00:00
sync_end_time=23:59

#访问端口
http.server_port=80

4.启动 Storage

方式一:
# /etc/init.d/fdfs_storaged start
方式二:
# service fdfs_storaged start
  1. 查看端口情况:netstat -apn|grep fdfs
    精品:CentOS7和FastDFS搭建图片服务器
  • 关闭Storage命令:

service fdfs_storaged stop

  • 重新启动Storage命令:

service fdfs_storaged restart

  1. 通过monitor来查看storage是否成功绑定,查看storage和Tracker是否通信成功
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

精品:CentOS7和FastDFS搭建图片服务器
7. 设置 Storage 开机启动

# chkconfig fdfs_storaged on

6.配置client

  1. 修改配置clinet配置
# cd /etc/fdfs
# cp client.conf.sample client.conf
# vi client.conf

修改如下配置
# Client 的数据和日志目录
base_path=/home/hc/client
# Tracker端口
tracker_server=172.16.85.139:22122

7.安装nginx

  1. 下载Nginx安装包:
# wget http://nginx.org/download/nginx-1.15.2.tar.gz
  1. 解压nginx:
 # tar -zxvf nginx-1.12.1.tar.gz
  1. 进入nginx目录
# cd nginx-1.15.2
  1. 安装依赖库,安装Nginx需要的相关依赖包:
# yum update

# yum install pcre-devel
# yum install zlib zlib-devel
# yum install openssl openssl-devel

//上面三条命令可用下面一条命令代替:
# yum install pcre-devel zlib zlib-devel openssl openssl-devel

8.安装fastdfs-nginx-module安装包

  1. 下载fastdfs-nginx-module安装包
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz
# 解压安装包
tar -zxvf V1.20.tar.gz 
  1. 修改fastdfs-nginx-module-1.20/src/config文件
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
  1. 配置Nginx,
进入nginx目录
#  cd nginx-1.15.2
# 添加模块
# ./configure --add-module=/usr/local/src/fastdfs-nginx-module-1.20/src
  1. 重新编译、安装
# make && make install
  1. 查看nginx版本,命令:/usr/local/nginx/sbin/nginx -V
    精品:CentOS7和FastDFS搭建图片服务器

9.配置Nginx和fastdfs-nginx-module模块

1.配置mod-fastdfs.conf,并拷贝到/etc/fdfs文件目录下

# cd /usr/local/src/fastdfs-nginx-module-1.20/src/
# cp mod_fastdfs.conf /etc/fdfs/
  1. 修改mod-fastdfs.conf
#  vi /etc/fdfs/mod_fastdfs.conf 
修改以下配置:
# 连接超时时间
connect_timeout=10
# Tracker Server 的地址
tracker_server=172.16.85.139:22122
## url是否包含group名称,设置为true
url_have_group_name = true
# Storage 配置的store_path0路径,须和storage.conf中的一致
store_path0=/home/hc/storage/file
  1. 拷贝 FastDFS 解压目录中(anti-steal.jpg、http.conf、mime.types)到/etc/fdfs 目录下
# cd /usr/local/package/fastdfs-5.11/conf/
#  cp anti-steal.jpg http.conf mime.types /etc/fdfs/
  1. 配置nginx,修改nginx.conf
 vi /usr/local/nginx/conf/nginx.conf

在其中添加如下内容:
精品:CentOS7和FastDFS搭建图片服务器
注意:为了避免出现nginx因为权限问题,http请求无法访问的问题出现:
精品:CentOS7和FastDFS搭建图片服务器
这一步非常重要,如果不做会出现图片上传成功,但浏览器中nginx无法访问的情况。

5.启动nginx

/usr/local/nginx/sbin/nginx
  1. 查看nginx安装路径:whereis nginx
    精品:CentOS7和FastDFS搭建图片服务器
  2. 设置开机启动
# vi /etc/rc.local
添加一行:
/usr/local/nginx/sbin/nginx
# 设置执行权限
# chmod 755 rc.local
  1. 查询nginx版本
/usr/local/nginx/sbin/nginx -V

精品:CentOS7和FastDFS搭建图片服务器

10.测试

  1. 上传文件
    精品:CentOS7和FastDFS搭建图片服务器

  2. nginx中查看

  • 浏览器中查看结果:
    精品:CentOS7和FastDFS搭建图片服务器

  • wget查看结果:

精品:CentOS7和FastDFS搭建图片服务器