centos7 安装fastdfs并集成springboot
小伙伴们,你们好呀!我是老寇!fastdfs安装包:https://pan.baidu.com/s/1swrV9ffJnmz4S0mfkuBbIw提取码:11111.安装 gcc2.安装libevent3.使用finalshell将安装包放在/opt略4.安装libfastcommon5.安装tracker6.配置tracker7.配置storage8.整个nginx9.安装nginx报错解决方式
·
小伙伴们,你们好呀!我是老寇!
目录
一.下载fastdfs
fastdfs安装包:https://pan.baidu.com/s/1swrV9ffJnmz4S0mfkuBbIw
提取码:1111
二.fastdfs介绍
- fastdfs是用c语言编写的开源分布式文件系统,fastdf基于负载均衡、线性扩容等机制,注重高可用,高性能等特性,使用fastdfs很容易搭建已一套高性能多节点的文件文件系统,提供文件上传、下载等服务
- fastdfs架构包括tracker server 和 stroage server 客户端通过tracker server进行文件上传、下载。最终由storage server完成文件上传和下载
三.安装过程
1.安装 gcc <用于编译>
# fastdfs由c语言编写,安装fastdfs之前需要安装gcc来编译
yum install -y gcc gcc-c++
2.安装libevent <用于运行>
# 安装 libevent,fastdfs依赖libevent库
yum install libevent
3.使用finalshell将安装包放在/opt
略
4.安装libfastcommon
# libcommon包含fastdfs运行的一些基础库
# 解压文件
# 移动文件到/usr/local
tar -zxvf libfastcommon.tar.gz
mv libfastcommon-1.0.7 /usr/local
# 编译并安装
cd /usr/local/libfastcommon-1.0.7
./make.sh && ./make.sh install
#libcommon安装好会在/usr/lib64目录下生成 libfastcommon.so文件
# 切换到/usr/lib64
cd /usr/lib64
# 查看 > 看到libfastcommon.so 即可
ls | grep libfastcommon.so
# 拷贝至/usr/lib
cp libfastcommon.so /usr/lib
5.安装tracker
cd /opt
tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local
cd /usr/local/FastDFS
# 编译安装
./make.sh && ./make.sh install
# 拷贝
cp /usr/local/FastDFS/conf/** /etc/fdfs/
6.配置tracker
cd /etc/fdfs
# 拷贝
cp tracker.conf.sample track.conf
vi tracker.conf
修改base_path路径
base_path=/home/yuqing/fastdfs => base_path=/home/fastdfs
http.server_port=8080 => http.server_port=80
# 创建目录
mkdir -p /home/fastdfs
# 启动 tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
7.配置storage
cd /etc/fdfs
# 拷贝
cp storage.conf.sample storage.conf
vi storage.conf
# 修改
base_path=/home/yuqing/fastdfs => base_path=/home/fastdfs
store_path0=/home/yuqing/fastdfs => store_path0=/home/fdfs_storage
http.server_port=8888 => http.server_port=88
//配置tracker服务器:IP
=> tracker_server=XXX.XXX.XXX.XX:22122
mkdir -p /home/fdfs_storage
# 启动 storage => 如果是云服务器需要开端口22122
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
8.整个nginx
# 每个tracker安装nginx,主要目的就是负载均衡及高可用,一个tracker对应多个storage,通过nginx对storage负载均衡
cd /opt
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local
# 进入/usr/local/fastdfs-nginx-module/src
# 修改config 将所有 /usr/local/路径都改为/usr
# 拷贝
cp mod_fastdfs.conf /etc/fdfs/
//修改 /etc/fdfs/mod_fastdfs.conf
vi /etc/fdfs/mod_fastdfs.conf
base_path=/tmp => base_path=/home/fastdfs
// 修改tracker_server为云服务器IP
tracker_server=XX.XX.XX.XX:22122
url_have_group_name = false => url_have_group_name = true
store_path0=/home/yuqing/fastdfs => store_path0=/home/fdfs_storage
# 拷贝
cp /usr/lib64/libfdfsclient.so /usr/lib/
# 创建nginx/client目录
mkdir -p /var/temp/nginx/client
9.安装nginx
cd /opt
tar -zxvf nginx-1.12.0.tar.gz -C /usr/local
# 安装nginx依赖库
yum install pcre && yum install pcre-devel && yum install zlib && yum install zlib-devel && yum install openssl && yum install openssl-devel
cd /usr/local/nginx-1.12.0
# 配置
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/usr/local/fastdfs-nginx-module/src
# 编译安装
make && make install
报错解决方式 => objs/Makefile 将gcc参数中的-Werror去掉 再重新make
cd /usr/local/FastDFS/conf
cp http.conf mime.types /etc/fdfs/
# 创建logs目录
mkdir /usr/local/nginx/logs
cd /usr/local/nginx/conf/
vi nginx.conf
// 修改pid
pid /usr/local/nginx/logs/nginx.pid;
修改server配置
location /group1/M00/ {
root /home/fdfs_storage/data;
ngx_fastdfs_module;
}
# 启动nignx
cd /usr/local/nginx/sbin/
./nginx
# 查看nginx进程
ps -ef|grep nginx
注意:云服务器需要开相应的端口
# 关闭防火墙
systemctl stop firewalld.service
# 开机禁止启动防火墙
systemctl enabled firewalld.service
# 查看防火墙状态
firewall-cmd --status
# 临时关闭防火墙
service iptables stop
# 永久关闭防火墙
chkconfig iptables off
四.集成Springboot
1.pom.xml
<dependency>
<groupId>com.github.tobato</groupId>
<artifactId>fastdfs-client</artifactId>
<version>1.26.2</version>
</dependency>
2.核心代码
/**
* FastDFS
* @author Kou Shenhai
*/
@Slf4j
public class FastDFSCloudStorageService {
private static DefaultGenerateStorageClient defaultGenerateStorageClient;
static {
defaultGenerateStorageClient = (DefaultGenerateStorageClient) SpringContextUtil.getBean("defaultGenerateStorageClient");
}
public String upload(InputStream inputStream, String fileName,Long size) throws Exception {
StorePath storePath;
try {
storePath = defaultGenerateStorageClient.uploadFile("group1", inputStream, inputStream.available(), FilenameUtils.getExtension(fileName));
} catch (Exception ex) {
log.error("错误信息:{}", ex.getMessage());
throw new CustomException(ex.getMessage());
}
return "http://x.x.x.x" + "/" + "group1" + "/" + storePath.getPath();
}
}
3.yml配置
fdfs:
connect-timeout: 6000
so-timeout: 600000
tracker-list: x.x.x.x:22122
4.地址 => 上传图片 => http://x.x.x.x/group1/data/mm/xx.jpg
更多推荐
所有评论(0)