Java组件总目录
FastDFS单机集群环境搭建
- Java组件总目录
- 一、Docker基本命令
- 二、 单机FastDfs安装
- 1 文件下载
- 2 软件安装
- 1 libfastcommon 安装
- 2 fastdfs 安装
- 3 完成安装测试
- 上传图片测试
- 其他命令
- 三 FastDFS 与Nginx 整合
- 1 安装FastDFS的Nginx模块
- 2 安装Nginx
- 3 网络问题
- 四、FastDFS 的集群搭建
- 2 修改配置文件
- tracker.conf修改内容:
- Storage配置(修改IP)
- 3 启动集群
能够完成FastDFS环境搭建(使用docker镜像即可)
在Docker 环境下安装FastDFS,集群FastDFS搭建
一、Docker基本命令
在机器中创建Linux 容器,在其中运行FastDFS。
1)下载docker引擎:
yum install docker
2)查询docker
docker -v #查询docker是否下载成功
3)基本命令
Systemctl start docker # 启动docker
Systemctl stop docker # 停止docker
Systemctl restart docker
4)下载镜像(可使用镜像地址)
docker pull centos:7
5)查询镜像是否下载
docker images
6)创建容器
在机器中创建docker 容器
-di 创建容器的名字 以centos:7 为基础镜像创建新的镜像
docker run -di --name=java5-tracker-01 centos:7 /bin/bash
7)查询容器,正在运行的容器
docker ps
8)登录容器
容器名称 java5-tracker-01
docker exec -it java5-tracker-01 /bin/bash
二、 单机FastDfs安装
1 文件下载
- 下载 libfastcommon 包(github 源码)
https://github.com/happyfish100/fastdfs/tags linux wget下载
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz - 下载 fastdfs 源码包(github 源码)
https://github.com/happyfish100/fastdfs/tags linux wget下载
wget https://github.com/happyfish100/fastdfs/archive/refs/tags/V5.11.tar.gz
2 软件安装
1 libfastcommon 安装
# 解压
tar -zxvf V1.0.39.tar.gz
cd libfastcommon-1.0.39/
# 如果系统中没有make指令,需要安装
# yum -y install gcc automake autoconf libtool make
# 安装
./make.sh && ./make.sh install
# 拷贝 libfastcommon.so 文件至 /usr/lib 目录(该1.0.39版本不需要此步)
# libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/lib目录,所以需要将/usr/lib64下的库文件拷贝至/usr/lib下
2 fastdfs 安装
- 1.fastdfs 安装
tar -zxvf V5.11.tar.gz
cd fastdfs-5.11
./make.sh && ./make.sh install
# 拷贝/root/fastdfs-5.11/conf目录下的文件到/etc/fdfs目录下
# 因为tracker server 默认加载/etc/fdfs 的配置文件
cp conf/* /etc/fdfs
- 2 tracker server配置
修改/etc/fdfs/tracker.conf 的 base_path, 注意:base_path目录要存在。
mkdir /kkb/server/fastdfs/tracker -p
cd /etc/fdfs
vim /tracker.conf
# 修改目录
base_path=/kkb/server/fastdfs/tracker
- 3 storage server配置
注意:base_path和store_path0目录要存在
vi /etc/fdfs/storage.conf
mkdir -p /kkb/server/fastdfs/storage
# 修改内容如下:
#指定storage的组名 group_name=group1
base_path=/kkb/server/fastdfs/storage
# 存储文件路径 M00虚拟磁盘路径
store_path0=/kkb/server/fastdfs/storage
# 获取tracker_server 的ip地址 eth0 inet
ipconfig
172.17.0.6
#如果有多个挂载磁盘则定义多个store_path,如下 #store_path1=..... #store_path2=......
#配置tracker服务器IP和端口
tracker_Server=172.17.0.6:22122
#如果有多个则配置多个tracker #tracker_Server=192.168.101.4:22122
3 完成安装测试
Tracker 启动命令,重启先退出后启动,说明已经启动。
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
上传图片测试
FastDFS安装成功后可通过【fdfs_test】命令测试上传、下载等操作
vi /etc/fdfs/client.conf
base_path=/kkb/server/fastdfs/client
tracker_Server=172.17.0.6:22122
mkdir -p /kkb/server/fastdfs/client
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/anti-steal.jpg
其他命令
# Tracker 启动命令
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
# 集群状态检查命令
fdfs_monitor /etc/fdfs/storage.conf
# 删除 Storage
fdfs_monitor /etc/fdfs/storage.conf delete 组名 storage的ip
# Tracker 关闭命令
killall fdfs_trackerd
killall fdfs_storaged
# Tracker storage 开机自启动
vim /etc/rc.d/rc.local
# 将运行命令行添加进文件:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
三 FastDFS 与Nginx 整合
1 安装FastDFS的Nginx模块
#下载
https://github.com/happyfish100/fastdfs-nginx-module
tar -zxvf V1.20.tar.gz
vi /root/fastdfs-nginx-module-1.20/src/config
# 修改前
ngx_module_incs="/usr/local/include"
CORE_INCS="$CORE_INCS /usr/local/include"
# 修改后
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
# fastdfs-nginx-module-1.20/src/mod_fastdfs.conf拷贝mod_fastdfs.conf
cp mod_fastdfs.conf /etc/fdfs/
# 修改mod_fastdfs.conf
vim /etc/fdfs/mod_fastdfs.conf
base_path=/kkb/server/fastdfs/storage tracker_Server=192.168.10.135:22122
#url中是否包含group名称
url_have_group_name=true
#指定文件存储路径,访问时使用该路径
store_path0=/kkb/server/fastdfs/storage
# 拷贝libfdfsclient.so(新版不需要)
cp /usr/lib64/libfdfsclient.so /usr/lib/
2 安装Nginx
https://github.com/nginx/nginx/releases
tar -xf nginx-1.15.6.tar.gz
# 执行configure配置
# prefix=/kkb/server/nginx 中的/kkb/server/nginx指的是要安装的nginx的路径
# add-module=/opt/fastdfs-nginx-module/src中的路径指的是fastdfs-nginx-module模块的解压缩路径
# 参数指定的目录一定要存在
mkdir -p /var/temp/nginx/client # 创建nginx/client目录
mkdir /var/temp/nginx -p # 创建临时目录
./configure
--prefix=/kkb/server/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
--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
--with-http_gzip_static_module
--add-module=/kkb/soft/fastdfs-nginx-module-1.20/src
# 编译安装
make && make install
# 修改nginx.conf
vi /kkb/server/nginx/conf/nginx.conf
# location /group1/M00/:以/group1/M00/开头的请求
# 使用Nginx模块ngx_fastdfs_module下载访问
图片。
server {
listen 80;
server_name localhost;
location /group1/M00/{
ngx_fastdfs_module;
}
}
# 切换到nginx/bin目录启动Nginx
./nginx
3 网络问题
Windows 访问容器,实现集群搭建,端口映射无法解决集群的问题。
添加路由表:
route add 172.17.0.0 mask 255.255.255.0 192.168.56.100
(容器 网段.0) (centos 虚拟机)
# 查看Gateway 和 ip
docker inspect d4b0b809e82d # docker id号码
Route add 172.17.0(跟据网段).0(必须是0) mask 255.255.255.0 转发ip
注意: 此命令必须在管理员权限下进行设计。
(容器能ping通windows宿主,能访问了docker 的eth0,但是windows访问不了容器,该方案最终未实现)
(可以使用端口映射方式实现同样功能, 将Nginx 端口(访问) 与 tracker 端口(上传) 映射即可)
四、FastDFS 的集群搭建
在Docker的基础上构建镜像,集群:集群就是把单机版拷贝几份,构建一个集群网络. 提交为镜像后创建多份。
1)提交为一个镜像
docker commit java5-tracker-01 java5-fastdfs
2)镜像备份
docker save -o java5-fastdfs xxxx.tar
3)导入镜像
docker load -i xxxx.tar
4) 创建镜像
docker load -i fastdfs.tar
docker images
service docker start
docker run -it --name=java5-tracker-01 kkb_fastdfs /bin/bash
# 登录进入容器
docker exec -it java5-tracker-01 /bin/bash
# docker ps -a 查看所有的容器
# 启动容器 之后进入容器
docker start -it java5-tracker-02 /bin/bash
# 删除容器
docker rm java5-tracker-01
2 修改配置文件
搭建2个Tracker, 4个storage。
tracker.conf修改内容:
轮询策略
store_lookup = 0
Storage配置(修改IP)
1 nginx.conf 监听端口改为80, 与Storage.conf 的端口改成一致。
2 Storage.conf 修改IP;
3 mod_fastdfs.conf修改组名。
# 修改组名为对应名称
group_name = group1
3 启动集群
依次启动2个Tracker, 4个storage, 以及与Storage配套的4个Nignx服务。 查看log 看到集群情况。
Fastdfs日志文件存储在 基础路径中: base_path/log
使用测试方法上传文件,在data 目录下看到同组的文件实现同步。