注意:本次集群搭建采用linux迷你版测试
架构图
第一步
准备6台迷你版虚拟机
第二步
安装工具
- 安装lrzsz yum install lrszs -y
- 安装wget yum intall vim -y
- 安装unzip yum install unzip -y
- 安装ifconfig yum install net-tools -y
yum install lrszs vim unzip net-tools -y
安装nginx以及fastdfs所需的依赖
yum iinstall gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel gd gd-devel libtool libevent libevent-devel -y
第三步 安装fastdfs
1、上传fastdfs的安装包和libfastcommon的安装包
2、解压安装libfastcommon
cd 到libfastcommon下 执行 ./make.sh 然后 ./make.sh install
3、解压安装fastdfs
4、拷贝fastdfs目录中的http.conf和mime.types到/etc/fdfs目录中
注意6台机器全部执行以上操作
第四步:部署两个tracker server服务器,需要做的工作:
修改两个tracker服务器的配置文件:
tracker.conf:修改一个地方:
base path=/data/fastdfs/tracker #设置tracker的数据文件和日志目录(需预先创建)
启动tracker服务器 fdfs trackerd/etc/fdfs/tracker.conf
第五步修改两个组中的4台storage中storage.conf文件
第一组group1的第一个storage server(修改storage.conf配置文件):
group name=group1I#组名,根据实际情况修改,值为group1或group2
basepath=/data/fastdfs/storage
#设置storage的日志目录(需预先创建)
store path0=/data/fastdfs/storage/files
#存储路径
tracker server=192.168.15.147:22122
#tracker服务器的IP地址以及端口号
tracker server=192.168.15.148:22122
第二组group2的第一个storage server(修改storage.conf配置文件):
group name=group2
#组名,根据实际情况修改,值为group1或group2
basepath=/data/fastdfs/storage
#设置storage的日志目录(需预先创建)
store path0=/data/fastdfs/storage/files #存储路径
tracker server=192.168.15.148:22122
#tracker服务器的IP地址以及端口号
tracker server=192.168.15.149:22122
启动storage服务器
使用之前的Java代码测试FastDFs的6台机器是否口以上传文件
注意:FastDFS默认是带有负载均衡策略的可以在tracker的2台机器中修改tracker.conf文件storelookup=1
随机存放策略
1指定组
2选择磁盘空间的优先存放默认值
修改后重启服务
fdfs trackerd/etc/fdfs/tracker.conf restart
第六步安装nginx,使用nginx对fastdfs进行负载均衡
上传nginx-1.12.2.tar.gz以及nginx的fastdfs扩展模块安装包fastdfs-nginx-module-master.zip添加nginx的安装依赖
yum install gcclopenssl openssl-devel pcre pcre-devel zlib zlib-devel-y
解压nginx
tar-zxvfnginx-1.12.2.tar.gz
解压fastfs扩展模块
unzip fastdfs-nginx-module-master.zip配置nginx的安装信息
2台tracker服务器的配置信息(不需要fastdfs模块)
./configure --prefix=/data/nginx
4台storage服务器其的配置信息(需要使用fastdfs模块)
./confiqure--prefix=/data/nginx --add-module=/data/fastdfs-nginx-modul/src
编译出错解决办法
执行 ln -s /usr/include/fast* /usr/local/include/ 修复
编译并安装nginx
./make
./make install
4台storage的服务器需要拷贝modfastdfs文件
将/data/fastdfs-nginx-module-master/src目录下的modfastdfs.conf文件拷贝到/etc/fdfs/目录
第七步配置tracker的两台机器的nginx
进入安装目录
cd /usr/local/nginx fdfs
添加一个location对请求进行拦截,配置一个正则规则拦截fastdfs的文件路径,并将请求转发#nginx拦截请求路径:
location ~/group[1-9]/M0[0-9]{
proxy pass http:// fastdfs_group_server;
}
添加一个upstream执行服务的IP为另外的4台stroage的地址#部署配置nqinx负载均衡:
upstream fastdfs_group_server{
server 192.168.15.147:80;
server 192.168.15.146:80;
server 192.168.15.145:80;
server 192.168.15.144:80;
}
第八步配置另外4台storage的nginx添加http访问的请求路径拦截
进入安装目录
cd/usr/local/nginx fdfs
添加一个location对请求进行拦截,配置一个正则规则拦截fastdfs的文件路径,使用fastdfs的#nginx拦截请求路径:
location ~/group[1-9]/M0[0-9]{
ngx_fastdfs_module;
}
第九步分别修改4台storage服务器的mod fasfdfs.conf文件(/etc/fdfs/mod fastdfs.conf)
#修改基本路径,并在指定路径创建对应文件夹
base path=/data/fastdfs/nginxmod
#保存日志目录#指定两台tracker服务器的ip和端口
tracker server-192.168.15.148:22122
#tracker服务器的IP地址以及端口号
tracker server=192.168.15.149:22122
#指定storage服务器的端口号
storage server port=23000
#通常情况不需要修改
#指定当前的storage服务器所属的组名(当前案例03和04为group105和06为group2) group name=group1
#当前服务器的group名
#指定ur1路径中是否包含组名(当前案例url包含组名)
url have group name=true #文件url中是否有group名
store path count=1
#存储路径个数,需要和storepath个数匹配(一般不用改)
store path0=/data/fastdfs/files
#存储路径
#指定组个数,根据实际配置决定,(当前案例拥有2个组group1和group2)
group count=2 #设置组的个数
在末尾增加2个组的具体信息:
[group1]
group_name=group1
storage_server port=23000 store path count=1
storepath0=/data/fastdfs/files
[group2]
group name=group2
storage server port=23000 store path count=1
store path0=/data/fastdfs/files
第一个组的第二个storage按照相同的步骤操作;
另外一个组的两个storage也按照相同的步骤操作;
#测试nginx的配置文件是否正确(测试全部6台服务器)
cd /data /nginx/sbin/ 执行./nginx
#启动nginx服务器(全部6台服务器)
cd /data/nginx/sbin/ 执行 ./nginx
第十步:部署前端用户访问入口服务器,即访问192.168.230.128上的Nginx,该Nqinx负载均衡到后端
配置nginx.conf文件
location ~/group[1-9]/M0[0-9]{
proxy pass http:// fastdfs_group_server;
}
添加一个upstream执行服务的IP为2台tracker的地址#部署配置nginx负载均衡:
upstream fastdfs_group_server {
server 192.168.15.148:80;
server 192.168.15.149:80;
}
测试:使用浏览器访问128(唯一入口的nqinx服务器)服务器中的fastdfs文件
注意:由于之前128的nginx中可能拥有静态资源拦截会导致访问不到文件,这时可以注释或删除这些静
最后一定要注意防火墙