内容 | IP地址 | 别名 |
---|---|---|
跟踪服务器 1 | 192.168.175.129 | tracker1 |
跟踪服务器 2 | 192.168.175.130 | tracker2 |
存储服务器 1 | 192.168.175.129 | group1 |
存储服务器 2 | 192.168.175.130 | group2 |
参考我的博文:FastDFS集群环境搭建(一)单机FastDFS配置和FastDFS集群环境搭建(三)FastDFS集成Nginx,在两台服务器上分别搭建FastDFS和Nginx
两台服务器(
192.168.175.129
和192.168.175.1230
)均维持单机版配置即可,其中store_lookup属性标识了集群存储策略,默认是2,如果想轮询可以改成0,这样就会group1、group2轮着存储了
sudo vim /etc/fdfs/storage.conf
修改两台服务器上的内容,两台服务器不同是
group_name
属性值,一个是group1,一个是group2,配置成不同分组的存储文件不会自动同步1,具体配置如下
# 组名(第一组为 group1, 第二组为 group2)
group_name=group1
# 有几个跟踪服务器就在下面写几个tracker_server信息
# tracker1 服务器的 IP 地址和端口
tracker_server=192.168.175.129:22122
# tracker2 服务器的 IP 地址和端口
tracker_server=192.168.175.130:22122
两台服务器配置完成后启动或重启storage
# 启动
sudo /etc/init.d/fdfs_storaged start
或者
# 重启
sudo /etc/init.d/fdfs_storaged restart
重启后在任意storage服务器上查看集群配置情况,下面截图中的group count: 2表示有两个注册存储组(卷),下面的Group 1和Group 2是两个存储组(卷)的具体信息。ACTIVE表示正确。fdfs_monitor详细用法参见我的博文:FastDFS集群环境搭建(五)FastDFS监控器fdfs_monitor
sudo /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
编辑两台服务器的client.conf
sudo vim /etc/fdfs/client.conf
增加tracker_server
tracker_server=192.168.175.129:22122
tracker_server=192.168.175.130:22122
storage所在服务器上都需要配置Nginx,编辑mod_fastdfs.conf
sudo vim /etc/fdfs/mod_fastdfs.conf
在group1所在服务器上配置mod_fastdfs.conf的对应内容如下:
connect_timeout=10
base_path=/tmp
tracker_server=192.168.175.129:22122
tracker_server=192.168.175.130:22122
storage_server_port=23000
group_name=group1
url_have_group_name = true
store_path0=/home/feige/fastdfs/storage
group_count = 2
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/home/weifei/fastdfs/storage
[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/home/weifei/fastdfs/storage
在group2所在服务器上配置Nginx的对应内容如下:
connect_timeout=10
base_path=/tmp
tracker_server=192.168.175.129:22122
tracker_server=192.168.175.130:22122
storage_server_port=23000
group_name=group2
url_have_group_name = true
store_path0=/home/feige/fastdfs/storage
group_count = 2
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/home/feige/fastdfs/storage
[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/home/feige/fastdfs/storage
在/home/feige/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录(所有storage服务器都需要配置)
sudo ln -s /home/weifei/fastdfs/storage/data/ /home/weifei/fastdfs/storage/data/M00
sudo vim /usr/local/nginx/conf/nginx.conf
server {
listen 8888;
server_name localhost;
location ~/group[0-9]/M00 {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
启动Nginx
sudo /usr/local/nginx/sbin/nginx -s reload
在任意节点上上传文件
sudo fdfs_upload_file /etc/fdfs/client.conf /home/feige/fastdfs/image/desktop.png
得到返回文件名(group2/M00/00/00/wKivgl1CrdqAMZb_AADeqP7ACwc568.png),通过如下地址访问,如果全部都能够正常访问,说明配置成功
http://192.168.175.129:8888/group1/M00/00/00/wKivgl1CrdqAMZb_AADeqP7ACwc568.png
http://192.168.175.129:8888/group2/M00/00/00/wKivgl1CrdqAMZb_AADeqP7ACwc568.png
http://192.168.175.130:8888/group1/M00/00/00/wKivgl1CrdqAMZb_AADeqP7ACwc568.png
http://192.168.175.130:8888/group2/M00/00/00/wKivgl1CrdqAMZb_AADeqP7ACwc568.png
返回的group_name是group2,可见文件实际存储位置是在192.168.175.130服务器上,通过find命令查看可以佐证。
我们配置的这个集群定义了两个存储分组——group1和group2,FastDFS的文件同步是针对相同分组进行的,所以我们这个定义文件不会同步,如果想把两个分组文件同步可以把两个分组改成同名,例如把group2改为group1,重启storage就可以发现两者旧文件会自动相互同步了。 ↩︎