架构图
● 如果你公司刚好用这个,那你就会搭建集群
● 涉及到多个Linux,你可以更进一步熟悉一下Linux
● 提升自己驾驭复杂环境的能力
建一个FastDFS分布式文件系统集群,推荐至少部署6个服务器节点。
迷你版Linux没有图形界面,占用磁盘及资源小,企业里面使用的Linux都是没有图形界面的Linux,在安装的时候,最少要给每一个虚拟机分配3.5G的内存空间,我这里分配5G,内存我这里分配的是512M
① 打开Vmware,点击创建新的虚拟机
② 选择典型安装
③ 选择安装Linux迷你版安装文件位置
④ 指定虚拟机名称及安装位置
⑤ 为虚拟机分配磁盘空间
⑥ 为虚拟机分配内存
我是8G内存,每个虚拟机分配512M,因为是迷你版,所以内存消耗不会太大
⑦ 开启此虚拟机
⑧ 开始安装
⑨ 选择语言为English
⑩ 打开网络连接(重要)
这个选项点进去完成一下就好,其它配置都可以默认,但是网络一定要打开,否则虚拟机之间无法通讯
(11) 设置root用户密码为123456
(12) 创建普通用户centos,设置密码为123456
(13) 安装完毕后,重启安装的CentOS系统
3. 为迷你版的Linux安装常用工具库
由于迷你版Linux缺少一些常用的工具库,操作起来不方便,推荐安装如下的工具库:
o 安装lrzsz, yum install lrzsz -y
o 安装wget, yum install wget -y
o 安装vim, yum install vim -y
o 安装unzip,yum install unzip -y
o 安装ifconfig,yum install net-tools -y
yum install lrzsz wget vim unzip net-tools –y
打开撰写栏,方便批量执行命令
4. 按照课件上安装FastDFS的步骤在6个服务器节点安装FastDFS
为了方便操作,我们再启动一次Xshell,一个Xshell操作Tracker,另一个操作Storage,将Tracker和Storage分开
o 把/etc/fdfs目录下的配置文件.sample后缀都去掉
o 修改两个tracker服务器的配置文件:
tracker.conf: 修改一个地方:
base_path=/opt/fastdfs/tracker #设置tracker的数据文件和日志目录(需预先创建)
o 创建存放数据的目录
每两个storage server为一组,共两个组(group1 和 group2),一个组内有两个storage server
① 修改第一组group1的第一个storage server(修改storage.conf配置文件)
group_name=group1 #组名,根据实际情况修改,值为 group1 或 group2
base_path=/opt/fastdfs/storage #设置storage的日志目录(需预先创建)
store_path0=/opt/fastdfs/storage/files #存储路径
tracker_server=192.168.235.129:22122 #tracker服务器的IP地址和端口号,配2个tracker_server=192.168.235.130:22122
② 第一个组的第二个storage按照相同的步骤操作
或者将第一组的配置文件下载到桌面上,然后上传覆盖第一组的第二个storage
③ 第二组的两个storage也按照相同的步骤操作;唯一的区别是group_name=group2
可以在桌面上对第一个组的storage文件进行修改,将组名修改为group2,然后上传覆盖
至此,一个FastDFS的分布式文件系统集群就搭建好了。
④ 注意:配置文件中不要出现中文,另外别忘了创建配置文件中指定的目录
⑤ 启动两个tracker,再启动四个storage
⑥ 关闭6个Linux防火墙,通过09-fastdfs-java的代码进行测试
修改配置文件为两个tracker
测试负载均衡:tracker.conf文件 (修改 store_lookup=0 表示轮训策略)
① 先完成4个storage server的Nginx访问
这4个Nginx需要去fastDFS找对应的文件,所以需要安装FastDFS的Nginx扩展模块
A、 配置带有FastDFS扩展模块的Nginx
在四个storage server上安装Nginx,并且加入FastDFS扩展模块;
修改两组4个storage的nginx扩展模块配置文件 mod_fastdfs.conf
base_path=/opt/fastdfs/nginx_mod #保存日志目录(需提前创建)
tracker_server=192.168.230.129:22122 #tracker服务器的IP地址以及端口号
tracker_server=192.168.230.130:22122
group_name=group1 #当前服务器的group名,第二组应配置为group2
url_have_group_name=true #文件url中是否有group名
store_path_count=1 #存储路径个数,需要和store_path个数匹配(一般不用改)
store_path0=/opt/fastdfs/storage/files #存储路径
group_count = 2 #设置组的个数
在末尾增加2个组的具体信息:
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs/storage/files
[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs/storage/files
B、 第一组的第二台和上面的配置一样
C、 第二组的两台只需要把group_name=group2即可
D、 至此,mod_fastdfs.conf就配置好了。
② 配置两组4个storage的nginx拦截请求路径:
location ~ /group[1-9]/M0[0-9] {
ngx_fastdfs_module;
}
至此4个storage服务器上的Nginx就搭建配置OK了
然后可以进行测试:
重启storage,启动Nginx
http://192.168.119.128:80/group1/M00/00/00/wKh3jVx6FUCARyK2AAAANaS4cxw338.txt
http://192.168.92.132:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt
http://192.168.92.133:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt
http://192.168.92.134:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt
注意:每一台都可以访问到,就算是当前组中没有改文件,因为向浏览器中发送请求的时候
交给Nginx进行location匹配
匹配上之后调用FastDFS的扩展模块
扩展模块会读取扩展模块配置文件mod_fast.conf
通过扩展模块配置文件,找到对应的Tracker,从而找到对应的文件
③ 在两个tracker server安装Nginx
这两个Nginx只需要做负载均衡,不要找文件,所以不需要安装扩展模块
④ 配置两个tracker server服务器上的Nginx访问
部署配置nginx负载均衡:
upstream fastdfs_storage_server {
server 192.168.92.131:80;
server 192.168.92.132:80;
server 192.168.92.133:80;
server 192.168.92.134:80;
}
#nginx拦截请求路径:
location ~ /group[1-9]/M0[0-9] {
proxy_pass http://fastdfs_storage_server;
}
至此,两个tracker服务器的Nginx就搭建配置OK了。
启动两个tracker服务器的Nginx进行测试。
http://192.168.92.129:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt
http://192.168.92.130:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt
⑤ 部署前端用户访问入口服务器,该Nginx负载均衡到后端2个tracker server
这个Nginx也只需要做负载均衡,不要找文件,所以不需要安装扩展模块,可以对Windows上的的Nginx进行配置
部署配置nginx负载均衡:
upstream fastdfs_tracker_server {
server 192.168.92.129:80;
server 192.168.92.130:80;
}
#nginx拦截请求路径:
location ~ /group[1-9]/M0[0-9] {
proxy_pass http://fastdfs_tracker_server;
}
访问:http://127.0.0.1:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt
至此,一个三层结构的Nginx访问架构就搭建配置OK了。为了保证高可用性,一般在入口出,会添加一个备用Nginx上,中间通过一个keepAlive软件连接。
**最后,为了让服务能正常连接tracker,请关闭所有机器的防火墙:**
systemctl status firewalld
systemctl disable firewalld
systemctl stop firewalld