栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 系统运维 > 运维 > 运维工具 > 宝塔面板

FastDFS和宝塔Nginx整合篇-1

宝塔面板 更新时间:发布时间: 百科书网 趣学号

文章目录
  • 一.环境准备
  • 二.FastDFS的软件版本
  • 三.阿里云服务器上的操作
    • 1 安装libfastcommon
    • 2 安装FastDFS
    • 3 安装tracker
    • 4 安装storage
    • 5 校验整合
    • 6 配置客户端
    • 7 模拟上传/下载
  • 四.Java程序进行上传/下载测试
    • 1 pom.xml坐标
    • 2 配置文件
    • 3 程序主体
    • 4 进行单元测试

本教程由 Scorpion 编写,转载请声明
软件下载: https://pan.baidu.com/s/1U7VrHt6euWIq2vY9ohB_Tg 提取码:rcik

一.环境准备

CentOS Linux 7.3.1611 (使用Centos7.x都行吧)
宝塔免费版6.9.9
通过宝塔面板编译安装 Nginx 1.16

二.FastDFS的软件版本

libfastcommon-1.0.36.zip

fastdfs-5.11.zip

fastdfs-nginx-module-1.20.zip

三.阿里云服务器上的操作

本教程参考

CentOS7搭建FastDFS V5.11分布式文件系统
https://www.cnblogs.com/guigujun/p/7804670.html


本人使用的是阿里云服务器,配置上和上面教程略有不同

阿里防火墙 开放端口 TCP 8080 22122 23000 等,记得开放要用的端口,否则后面操作失败

由于有了阿里云防火墙,所以服务器上的防火墙基本都不想开了,
因为如果开放一个端口,要改阿里防火墙和服务器防火墙 2个地方,
太繁琐了,所以可以使用以下命令禁用服务器自身的防火墙

# 关闭防火墙
systemctl stop firewalld.service

# 禁止防火墙开机自启
systemctl disable firewalld.service
1 安装libfastcommon

使用软件上传所有FastDFS软件到服务器的 /home/temp目录上
上传文件的软件可使用: WinSCP
/home/temp目录自己建立

cd /home/temp/

# 解压所有的压缩包
unzip libfastcommon-1.0.36.zip
unzip fastdfs-5.11.zip
unzip fastdfs-nginx-module-1.20.zip

# 安装fastdfs的环境
cd libfastcommon-1.0.36
./make.sh
./make.sh install


#建立软链接
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
# 安装FastDFS
cd /home/temp/fastdfs-5.11
./make.sh
./make.sh install

#从样本中拷贝配置文件
cd /etc/fdfs/
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
3 安装tracker
# 一并把后面要的所有目录创建
mkdir /opt/fastdfs_tracker
mkdir /opt/fastdfs_storage
mkdir /opt/fastdfs_storage_data


******************************************
# 配置文件 tracker
vim /etc/fdfs/tracker.conf
# 关注以下配置
disabled=false 
port=22122 	#默认端口号 
base_path=/opt/fastdfs_tracker #自己刚创建的目录 
http.server_port=8080 	#默认端口是8080
#bind_addr 留空即可,不写则任何人都可以访问
bind_addr=


# 查看支持命令 ,常用的有 start,stop,status
service fdfs_trackerd
# 启动tracker,这里显示ok还不行,还得看下面的监听端口看不看得到
service fdfs_trackerd start

# 开机自启动
echo "service fdfs_trackerd start" |tee -a /etc/rc.d/rc.local

#查看tracker监听端口
# 这里必须看到 tracker的监听端口,否则请检查上面的操作
netstat -unltp|grep fdfs
4 安装storage
*****************************
# 配置文件 storage
vim /etc/fdfs/storage.conf


# 注意下列配置
disabled=false 
group_name=group1 #组名,根据实际情况修改 
port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致 
base_path=/opt/fastdfs_storage #设置storage数据文件和日志目录 
store_path_count=1 #存储路径个数,需要和store_path个数匹配 
store_path0=/opt/fastdfs_storage_data #实际文件存储路径 
tracker_server=公网IP:22122 #阿里云服务器的公网IP
8.http.server_port=8888 #设置 http 端口号


# 创建软引用
ln -s /usr/bin/fdfs_storaged /usr/local/bin

#启动storage ,这里ok还不行,必须看到storage的监听端口才行
service fdfs_storaged start

#开机自启动 storage
echo "service fdfs_storaged start" |tee -a /etc/rc.d/rc.local

# 看一下是否有tracker和storage的2个监听端口,否则请检查上面操作
netstat -unltp | grep fdfs 
5 校验整合
# 整合校验,如果校验失败,请返回前面检查错误
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

# 看到以下重要信息即成功, ACTIVE  活动中
tracker server is 公网IP:22122

Storage 1:  # Storage 的数字任意,主要看到自己的公网IP ACTIVE 就行
	id = 公网IP
	ip_addr = 公网IP  ACTIVE
6 配置客户端
vim /etc/fdfs/client.conf

# 注意以下配置
base_path=/opt/fastdfs_tracker #tracker服务器文件路径
tracker_server=公网IP:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=8080 # tracker 服务器的 http端口号,必须和tracker的设置对应起来
7 模拟上传/下载

使用 WinSCP 软件上传一张测试图片到 /home/test/目录下

# 图片 /home/temp/test.jpg

#上传图片
fdfs_upload_file  /etc/fdfs/client.conf /home/temp/test.jpg

# 看到group1/M00/00/00字眼即成功了,这个信息后面有用
# group1/M00/00/00/rBSEOVoC2QCAJVdoAAFeVJMpopw987.png

#下载图片
fdfs_download_file group1/M00/00/00/rBSEOVoC2QCAJVdoAAFeVJMpopw987.png

#查看当前路径下有没有图片 rBSEOVoC2QCAJVdoAAFeVJMpopw987.png
ls
四.Java程序进行上传/下载测试

使用Eclipse的 Maven工程

1 pom.xml坐标


    junit
    junit
    4.12
    test



      org.csource
      fastdfs-client-java
      1.27-SNAPSHOT

这里会有一个错误,无法引入fastdfs-client-java
参考以下网址引入该包

https://blog.csdn.net/qq_41840847/article/details/93133865

2 配置文件

src/test/resource下新建一个
fastdfs_client.conf

内容如下

tracker_server=公网IP:22122
3 程序主体
package fastdfsTest;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
import org.csource.common.MyException;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient;
import org.junit.Test;

public class FastDFSTest {
	private String config_path = null;

	{
		// 获取 fastdfs_client.conf 文件的路径
		config_path = this.getClass().getResource("/fastdfs_client.conf").getPath();
	}

	
	@Test
	public void testUpload() throws IOException, MyException {
		// 初始化客户端全局信息
		ClientGlobal.init(config_path);
		// 创建 StroageClient对象
		StorageClient storageClient = new StorageClient();
		// 上传文件,并返回文件在服务器中的组名和文件id
		// upload_file(图片的绝对路径,图片后缀类型,null)
		String[] arr = storageClient.upload_file("E:\Material\Image\pretty.png", "png", null);
		// 验证是否成功
		System.out.println(Arrays.toString(arr));
		// 返回结果 [group1, M00/00/00/rBE4UF2JxZ2AOvQ-ABVkyonzKRI078.png]
	}

	
	@Test
	public void testDownload() throws IOException, MyException {
		// 初始化客户端全局信息
		ClientGlobal.init(config_path);
		// 创建 StroageClient对象
		StorageClient storageClient = new StorageClient();
		// 下载文件, 把刚才上传的图片下载回来
		// download_file(组名,图片名) 填入的都是上面上传时返回的信息
		byte[] data = storageClient.download_file("group1", "M00/00/00/rBE4UF2JxZ2AOvQ-ABVkyonzKRI078.png");
		// 将数据写入本地磁盘中
		FileOutputStream fos = new FileOutputStream("D:/pretty.png");
		fos.write(data);
		fos.close();
	}

}
4 进行单元测试


testUpload() --> 右键 -->Run as–>Junit Test

testDownload–>右键–>Run as–>Junit Test

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/834378.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号