目录:
(1)FastDFS搭建集群的环境准备
(2)FastDFS集群搭建负载均衡环境-使用Nginx进行负载均衡
(1)FastDFS搭建集群的环境准备
架构图
新建7台虚拟机:
在Xshell中创建6个连接,分别连向不同的Linux
这里我们没有使用Xshell
分别连接:
由于迷你版Linux缺少一些常用的工具库,操作起来不方便,推荐安装如下的工具库
yum install –y lrzsz wget vim unzip net-tools
在这六个窗口依次执行: yum install –y lrzsz wget vim unzip net-tools
安装nginx及fastdfs需要的库依赖:
yum install -y gcc perl openssl openssl-devel pcre pcre-devel zlib zlib-devel libevent libevent-devel
第三步 安装fastdfs
1、 上传fastdfs的安装包和libfastcommon的安装包
2、 解压libfastcommon 安装libfastcommon
3、 解压fastdfs 安装fastdfs
4、 拷贝fastdfs目录中的http.conf和mime.types到/etc/fdfs 目录中
注:6台机器全部执行这些操作
通过Windows连接Linux:使用put命令上传
都上传成功:
解压文件:环境文件
每台先进行编译
每台执行安装:
每台解压:fdfs
按装:
执行install命令:
每个解压:fastdfs
每个安装:
查看一下是否出现:
每个都复制一下文件:
第四步:部署两个tracker server服务器,需要做的工作:
修改两个tracker服务器的配置文件:
tracker.conf: 修改一个地方:
base_path=/opt/fastdfs/tracker #设置tracker的数据文件和日志目录(需预先创建)
启动tracker服务器 fdfs_trackerd /etc/fdfs/tracker.conf
编辑两台tracker的配置文件:130、133
编辑:
修改:
分别启动130、133的:tracker
所有ip都开放一下端口:
第五步 修改两个组中的4台storage中storage.conf文件
第一组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.171.135:22122 #tracker服务器的IP地址以及端口号
tracker_server=192.168.171.136:22122
第二组group2的第一个storage server(修改storage.conf配置文件):
group_name=group2 #组名,根据实际情况修改,值为 group1 或 group2
base_path=/opt/fastdfs/storage #设置storage的日志目录(需预先创建)
store_path0=/opt/fastdfs/storage/files #存储路径
tracker_server=192.168.171.135:22122 #tracker服务器的IP地址以及端口号
tracker_server=192.168.171.136:22122
启动storage服务器
fdfs_storaged /etc/fdfs/storage.conf
使用之前的Java代码测试FastDFS的6台机器是否可以上传文件
注意:FastDFS默认是带有负载均衡策略的可以在tracker的2台机器中修改tracker.conf文件
store_lookup=1
0 随机存放策略
1 指定组
2 选择磁盘空间的优先存放 默认值
修改后重启服务
fdfs_trackerd /etc/fdfs/tracker.conf restart
这里是两组第一组:131、132 是group1
第二组:134、135是group2
第一组:
编辑:
修改:
第二组:
修改:
启动storage:
使用Java代码测试:
修改配置文件:
测试文件上传:
查看131:
(2)FastDFS集群搭建负载均衡环境-使用Nginx进行负载均衡
第六步 安装 nginx ,使用nginx 对fastdfs 进行负载均衡
上传 nginx-1.12.2.tar.gz以及 nginx的fastdfs扩展模块安装包fastdfs-nginx-module-master.zip
添加nginx的安装依赖
yum install gcc openssl openssl-devel pcre pcre-devel zlib zlib-devel -y
解压nginx
tar -zxvf nginx-1.12.2.tar.gz
解压fastdfs扩展模块
unzip fastdfs-nginx-module-master.zip
配置nginx的安装信息
2台tracker服务器的配置信息(不需要fastdfs模块)
./configure --prefix=/usr/local/nginx_fdfs
4台storage服务器其的配置信息(需要使用fastdfs模块)
./configure --prefix=/usr/local/nginx_fdfs --add-module=/root/fastdfs-nginx-module-master/src
编译并安装nginx
./make
./make install
4台storage的服务器需要拷贝mod_fastdfs文件
将/root/fastdfs-nginx-module-master/src目录下的mod_fastdfs.conf文件拷贝到 /etc/fdfs/目录下,这样才能正常启动Nginx;
在131、132、134、135安装fastdfs-nginx
解压fastdfs-nginx:
移动目录:
上传nginx:从130-135都上传一份
使用命令上传:
解压缩:
2台tracker服务器的配置信息(不需要fastdfs模块)
添加nginx的安装依赖
4台storage的服务器需要拷贝mod_fastdfs文件
4台storage服务器其的配置信息(需要使用fastdfs模块)
6台执行
第七步 配置tracker 的两台机器的nginx
进入安装目录
cd /usr/local/nginx_fdfs
添加一个location 对请求进行拦截,配置一个正则规则 拦截fastdfs的文件路径, 并将请求转发到其余的4台storage服务器(修改 conf目录下nginx.conf 文件)
#nginx拦截请求路径:
location ~ /group[1-9]/M0[0-9] {
proxy_pass http://fastdfs_group_server;
}
添加一个upstream 执行服务的IP为 另外的4台stroage 的地址
#部署配置nginx负载均衡:
upstream fastdfs_group_server {
server 192.168.171.137:80;
server 192.168.171.138:80;
server 192.168.171.139:80;
server 192.168.171.140:80;
}
130、133
编辑:
修改:
第八步 配置另外4台storage的nginx添加http访问的请求路径拦截
进入安装目录
cd /usr/local/nginx_fdfs
添加一个location 对请求进行拦截,配置一个正则规则 拦截fastdfs的文件路径,使用fastdfs的nginx模块转发请求(修改 conf目录下nginx.conf 文件)
#nginx拦截请求路径:
location ~ /group[1-9]/M0[0-9] {
ngx_fastdfs_module;
}
131、132、134、135
编辑:
修改:
启动130、133的nginx:
第九步 分别修改4台storage服务器的mod_fasfdfs.conf文件(/etc/fdfs/mod_fastdfs.conf)
#修改基本路径,并在指定路径创建对应文件夹
base_path=/opt/fastdfs/nginx_mod #保存日志目录
#指定两台tracker服务器的ip和端口
tracker_server=192.168.171.135:22122 #tracker服务器的IP地址以及端口号
tracker_server=192.168.171.136:22122
#指定storage服务器的端口号
storage_server_port=23000 #通常情况不需要修改
#指定当前的storage服务器所属的组名 (当前案例03和04为group1 05和06为group2)
group_name=group1 #当前服务器的group名
#指定url路径中是否包含组名 (当前案例url包含组名)
url_have_group_name=true #文件url中是否有group名
store_path_count=1 #存储路径个数,需要和store_path个数匹配(一般不用改)
store_path0=/opt/fastdfs/storage/files #存储路径
#指定组个数,根据实际配置决定,(当前案例拥有2个组group1和group2)
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
第一个组的第二个storage按照相同的步骤操作;
另外一个组的两个storage也按照相同的步骤操作;
#测试nginx的配置文件是否正确(测试全部6台服务器)
/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf -t
#启动nginx服务器(全部6台服务器)
/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf
编辑:131、132、134、135
修改:
base_path=/opt/fastdfs/nginx_mod #保存日志目录
tracker_server=192.168.171.130:22122 #tracker服务器的IP地址以及端口号
tracker_server=192.168.171.133:22122
131、132使用group1
false改为true
创建文件夹:
134、135 执行相同的操作
修改:
base_path=/opt/fastdfs/nginx_mod #保存日志目录
tracker_server=192.168.171.130:22122 #tracker服务器的IP地址以及端口号
tracker_server=192.168.171.133:22122
创建目录:
第十步:部署前端用户访问入口服务器,即访问192.168.230.128上的Nginx,该Nginx负载均衡到后端2个tracker server;
配置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.116.130:80;
server 192.168.116.133:80;
}
测试:使用浏览器访问128(唯一入口的nginx服务器)服务器中的fastdfs文件
注意:由于之前128的nginx中可能拥有静态资源拦截会导致访问不到文件,这时可以注释或删除这些静态资源拦截
首先启动nginx:131、132、134、135
130、131、133都可以访问原来上传的图片
启动129服务器:
复制一份配置文件:
第十步:部署前端用户访问入口服务器,即访问192.168.230.129上的Nginx,该Nginx负载均衡到后端2个tracker server;
编辑:
修改:
添加一个upstream 执行服务的IP为 2台tracker 的地址
#部署配置nginx负载均衡:
启动129nginx:
就可以通过129进行访问了