首页 > 系统相关 >使用Docker一键搭建FastDFS+Nginx分布式文件服务器

使用Docker一键搭建FastDFS+Nginx分布式文件服务器

时间:2022-11-01 11:33:43浏览次数:49  
标签:fastdfs FastDFS Nginx file storePath 服务器 Docker 搭建


做过很多项目在图片上传上一直使用的是FastDFS,刚开始得知搭建一个这样的系统非常复杂,所以直接使用了淘淘商城的虚拟机。在后面的项目中,最终选择在在阿里云上自己搭建一个FastDFS+Nginx分布式文件服务器。文章可参考​​Centos7 安装FastDFS+nginx module​​ 现在考虑到后期服务器可能要变更,重新搭建太耗时,并且现在服务器安装的东西太多准备重装一下CentOS系统,所以最近把很多东西都用Docker重新搭建了一下。
本文重点教给大家使用Docker一键搭建FastDFS+Nginx分布式文件服务器,具体搭建过程太复杂,希望以后有时间可以总结一下,大部分坑都在docker使用上不熟练和docker中的centos环境太少,甚至没有基础的vim、ll、yum等。不过考虑到系统的精简性,最终并没有将这些环境加入进去。

拉取镜像并启动

docker run -d --restart=always --privileged=true --net=host --name=fastdfs -e IP=47.95.234.255 -e WEB_PORT=80 -v ${HOME}/fastdfs:/var/local/fdfs registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs

其中​​-v ${HOME}/fastdfs:/var/local/fdfs​​​是指:将​​${HOME}/fastdfs​​​这个目录挂载到容器里的​​/var/local/fdfs​​​这个目录里。所以上传的文件将被持久化到​​${HOME}/fastdfs/storage/data​​里,IP 后面是自己的服务器公网ip或者虚拟机ip,-e WEB_PORT=80 指定nginx端口

测试

docker exec -it fastdfs /bin/bash

echo "Hello FastDFS!">index.html

fdfs_test /etc/fdfs/client.conf upload index.html

使用Docker一键搭建FastDFS+Nginx分布式文件服务器_FastDFS


使用Docker一键搭建FastDFS+Nginx分布式文件服务器_docker_02


可以访问说明FastDFS就搭建好了。

如果有问题可以看一下是否占用80端口或是否开启22122 23000端口

FastDFS整合SpringBoot

首先加上依赖

<dependency>
<groupId>com.github.tobato</groupId>
<artifactId>fastdfs-client</artifactId>
</dependency>

配置yml文件

# 分布式文件系统fastdfs配置
fdfs:
# socket连接超时时长
soTimeout: 1500
# 连接tracker服务器超时时长
connectTimeout: 600
pool:
# 从池中借出的对象的最大数目
max-total: 153
# 获取连接时的最大等待毫秒数100
max-wait-millis: 102
# 缩略图生成参数,可选
thumbImage:
width: 150
height: 150
# 跟踪服务器tracker_server请求地址,支持多个,这里只有一个,如果有多个在下方加- x.x.x.x:port
trackerList:
- 47.95.234.255:22122
#
# 存储服务器storage_server访问地址
web-server-url: http://47.95.234.255/
spring:
http:
multipart:
max-file-size: 100MB # 最大支持文件大小
max-request-size: 100MB # 最大支持请求大小

测试类

public class FdfsTest {

@Autowired
private FastFileStorageClient storageClient;


@Test
public void testUpload() throws FileNotFoundException {
File file = new File("G:\\img.png");
// 上传并且生成缩略图
StorePath storePath = this.storageClient.uploadFile(
new FileInputStream(file), file.length(), "png", null);
// 带分组的路径
System.out.println(storePath.getFullPath());
// 不带分组的路径
System.out.println(storePath.getPath());
}

@Test
public void testUploadAndCreateThumb() throws FileNotFoundException {
File file = new File("G:\\img.png");
// 上传并且生成缩略图
StorePath storePath = this.storageClient.uploadFile(
new FileInputStream(file), file.length(), "png", null);
// 带分组的路径
System.out.println(storePath.getFullPath());
// 不带分组的路径
System.out.println(storePath.getPath());
}
}


标签:fastdfs,FastDFS,Nginx,file,storePath,服务器,Docker,搭建
From: https://blog.51cto.com/u_13351110/5812931

相关文章

  • nginx中的proxy_pass配置
    Nginx是最常用的反向代理工具之一,一个指令proxy_pass搞定反向代理,对于接口代理、负载均衡很是实用,但proxy_pass指令后面的参数很有讲究,通常一个/都可能引发一个血案。......
  • Linxu下如何查看一个服务/应用的所在位置和配置位置(以nginx为例)
    有时候我们需要查看某个程序的配置和运行目录以nginx为例1、看出进程ID -PID [root@www~]#ps-CnginxPIDTTYTIMECMD1113?00:00:00n......
  • 一台虚拟机,基于docker搭建大数据HDP集群
    前言好多人问我,这种基于大数据平台的xxxx的毕业设计要怎么做。这个可以参考之前写得关于我大数据毕业设计的文章。这篇文章是将对之前的毕设进行优化。个人觉得可以分为......
  • docker微服务实战-多个微服务
    1、编写代码并构建打包#创建目录mkdir/root/mycompose#上传jar包2、编写Dockerfile文件#编辑DockerfileviDockerfile#基础镜像使用javaFROMjava:8#......
  • Docker设置容器开机自启
    文章目录......
  • redis三主三从集群简易搭建(docker版本, 3台机器)
    #备注:仅针对测试验证使用,生产环境请注意密码/开启AOF等参数设置dockerpullredis:6#机器1dockerrun-d--nethost--nameredis7001redis:6--cluster-enabl......
  • Docker
    Docker解决了:应用部署的环境问题依赖兼容问题操作系统环境差异如何解决:Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像,Docker应用运行在容器......
  • 关于nginx 一个服务器,多个站点的困惑?
    比如在nginx的html文件夹中,存在两个目录web1和web2http://xxxxx/web1http://xxxxx/web2如果使用localStorage来存储token,就会出现两个网站共享localStorage的情......
  • docker部署zabbix6.0及企业微信发送告警
    1前言1.1实验背景因zabbix6.0新增许多新特性,为熟悉界面特意在本地部署一套简易版(未启用HA功能)。原本想要在烧制了centos7.9系统树莓派上部署,一查之下armv7果然冷门,mar......
  • Docker安装Redis
    一、Docker拉取redis镜像dockerpullredis:<latest>二、Docker挂载配置文件将redis的配置文件进行挂载,以配置文件方式启动redis容器(挂载:将宿主机的文件和容器内部目录......