FastDFS搭建图片服务器
FastDFS服务器
FastDFS
-
FastDFS是以C语言开发的一项开源轻量级分布式文件系统,他对文件进行管理,主要功能有:文件存储,文件同步,文件访问(文件上传/下载),特别适合以文件为载体的在线服务,如图片网站,视频网站等
-
FastDFS由三部分构成: Client -> Tracker Server -> Storage Server
搭建FastDFS服务器
-
首先搭建Linux虚拟机环境,以Centos7为例,搭建图片服务器
-
下载安装libevent包 yum -y install libevent 。
-
将下面三个tar.gz 解压包通过filezilla 传入到虚拟机
-
首先解压libfastcommon,然后进入,编译安装 make.sh ./make.sh ./make.sh install
- 安装完后,将/usr/lib64下的 libfastcommon.so复制一份到/usr/lib【32位环境】下
-
然后解压FastDFS 解压 编译安装同libfastcommon
-
安装后,bin文件在 /usr/bin下 命名为fdfs_xxx
-
配置文件在 /etc/fdfs目录下. 把解压后的fastDFS/conf下文件全部复制到/etc/fdfs下,然后进行相应修改。
-
vi tracker.conf 修改base_path【存储日志】如换成:/fastdfs/tracker
-
vi storage.conf 修改 base_path 【存储数据以及日志】、group_name【组织名,访问服务器要加上的前缀】、store_path0【实际图片存放路径】、tracker_server【修改为tracker服务器 IP地址,因为要向tracker服务器定时汇报】
-
vi client.conf 修改base_path、tracker_server
-
启动 tracker storage服务: /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
-
测试client 用/usr/bin下的fdfs_test服务。如:测试上传某图片.
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /home/logo.png
-
上传后 返回的信息中有路径: remote_filename = M00/00/00/xxxxxxxxxxxx.png ,访问的话要加上group_name
-
fastdfs-nginx-module/ 解压目录下,修改 /src/config 文件 将里面的三个/local去掉【同前面fastdfs文件目录一致】。
-
需要将该目录下的mod_fastdfs.conf 文件拷贝到 /etc/fdfs目录下。在/etc/fdfs下修改该配置文件 修改base_path【/tmp --> /fastdfs/tmp /fastdfs下没有/tmp目录 需要自己去创建】、tracker_server、group_name、url_have_group_name =true【是否需要group_name做访问前缀】、store_path0【must same as storage.conf】 : /fastdfs/storage
-
Nginx
-
上面把fastdfs安装配置完毕,现在需要nginx来代理fastdfs服务器.
-
安装相应的库 gcc、pcre、pcre-devel、zlib、zlib-devel、openssl、openssl-devel yum install gcc-c++ /pcre pcre-devel /zlib .........
-
解压nginx 的tar.gz包 ,进入目录,对目录下的configure做相应配置【最后fastdfs-nginx-module为添加fastdfs模块 路径为对应安装位置的/src目录】
-
配置完后 然后在nginx目录下 对整体进行编译 安装 make make install
-
进入/usr/local/nginx/conf下修改nginx.conf 在里面另外添加一个服务器端口
server{ listen 88; server_name 服务器地址; # 配置nginx进行负载均衡的路径 location ~/group[0-9]/M00 { ngx_fastdfs_module; } }
-
关闭防火墙或者打开端口【访问不了的原因】。
-
#centos7启动防火墙 systemctl start firewalld.service #centos7停止防火墙/关闭防火墙 systemctl stop firewalld.service #centos7重启防火墙 systemctl restart firewalld.service #设置开机启用防火墙 systemctl enable firewalld.service #设置开机不启动防火墙 systemctl disable firewalld.service
-
-
然后打开nginx 配置里设置了前缀 可以直接用 nginx 开启nginx服务器
-
-------------------------------------------到此,图片服务器搭建完毕。------------------------------------------------------