具体搭建过程参照官方wiki:
https://github.com/happyfish100/fastdfs/wiki
按照官方wiki,将配置文件做修改并打包,然后自己写成Dockerfile
环境:三台虚拟机
10.200.18.200
10.200.18.201
10.200.18.202
每台虚拟机上都按装tracker, storage,nginx
需要用到的文件已打包:tools.tar.gz
下载链接:https://download.csdn.net/download/zdxtmp/11783345
创建文件夹:mkdir -p /usr/local/docker/fastdfs/env
将包放在/usr/local/docker/fastdfs/env目录下
在env目录下新建Dockerfile文件
FROM centos
MAINTAINER zd
#安装编译环境
RUN yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
RUN mkdir -p /home/dfs
WORKDIR /usr/local/src
#复制并解压缩各种源码
ADD tools.tar.gz /usr/local/src
# 安装 libfastcommon
WORKDIR /usr/local/src/libfastcommon
RUN ./make.sh && ./make.sh install
# 安装 FastDFS
WORKDIR /usr/local/src/fastdfs
RUN ./make.sh && ./make.sh install
RUN cp /usr/local/src/tracker.conf /etc/fdfs/tracker.conf
RUN cp /usr/local/src/storage.conf /etc/fdfs/storage.conf
RUN cp /usr/local/src/client.conf /etc/fdfs/client.conf
RUN cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/
RUN cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/
#安装fastdfs-nginx-module
RUN cp /usr/local/src/mod_fastdfs.conf /etc/fdfs
#安装nginx
WORKDIR /usr/local/src/nginx-1.15.4
RUN ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/
RUN make && make install
RUN cp /usr/local/src/nginx.conf /usr/local/nginx/conf
RUN cp /usr/local/src/start.sh /usr/local/bin/
ENTRYPOINT ["/usr/local/bin/start.sh"]
WORKDIR /
EXPOSE 8888
回到上级目录
cd /usr/local/docker/fastdfs
创建docker-compose.yml文件:
version: '3.1'
services:
fastdfs:
build: env
restart: always
container_name: fastdfs
volumes:
- ./dfs:/home/dfs
network_mode: host
docker-compose build 等待执行完成
构建完成后 docker-compose up -d启动容器
测试是否可用:随便哪个节点
进入容器:
docker exec -it fastdfs /bin/bash
上传文件:
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/fastdfs/INSTALL
上传成功,返回group1/M00/00/00/CsgSyV0Mc6uASyKYAAAeSz8rAbQ2563864
检测集群:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
出现storage1-storage3的详细信息,说明三个节点部署成功
nginx访问:
http://10.200.18.200:8888/group1/M00/00/00/CsgSyV0Mc6uASyKYAAAeSz8rAbQ2563864
http://10.200.18.201:8888/group1/M00/00/00/CsgSyV0Mc6uASyKYAAAeSz8rAbQ2563864
http://10.200.18.202:8888/group1/M00/00/00/CsgSyV0Mc6uASyKYAAAeSz8rAbQ2563864
可以下载,说明成功
包里配置文件:
client.conf:
#需要修改的内容如下
base_path=/home/dfs
tracker_server=10.200.18.200:22122
tracker_server=10.200.18.201:22122
tracker_server=10.200.18.202:22122
mod_fastdfs.conf
#需要修改的内容如下
tracker_server=10.200.18.200:22122
tracker_server=10.200.18.201:22122
tracker_server=10.200.18.202:22122
url_have_group_name=true
store_path0=/home/dfs
nginx.conf
#添加如下配置
server {
listen 8888; ## 该端口为storage.conf中的http.server_port相同
server_name localhost;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
storage.conf
#需要修改的内容如下
port=23000 # storage服务端口(默认23000,一般不修改)
base_path=/home/dfs # 数据和日志文件存储根目录
store_path0=/home/dfs # 第一个存储目录
tracker_server=10.200.18.200:22122
tracker_server=10.200.18.201:22122
tracker_server=10.200.18.202:22122
http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
tracker.conf
#需要修改的内容如下
port=22122 # tracker服务器端口(默认22122,一般不修改)
base_path=/home/dfs # 存储日志和数据的根目录
start.sh脚本
#!/bin/sh
/etc/init.d/fdfs_trackerd start
/etc/init.d/fdfs_storaged start
/usr/local/nginx/sbin/nginx -g 'daemon off;'
本文档详细介绍了如何在三台虚拟机上搭建FastDFS集群,包括安装tracker、storage和Nginx,并利用Docker进行容器化部署。通过下载提供的工具包,配置相关文件,创建Dockerfile和docker-compose.yml文件,最后验证集群和Nginx的正常工作,确保文件上传和访问功能的实现。

483

被折叠的 条评论
为什么被折叠?



