分布式文件系统(FastDFS)集群配置

[TOC]

我们在使用FastDFS部署一个分布式文件系统的时候,通过FastDFS的客户端API来进行文件的上传、下载、删除等操作。同时通过FastDFS的HTTP服务器来提供HTTP服务。但是FastDFS的HTTP服务较为简单,无法提供负载均衡等高性能的服务,所以FastDFS的开发者——淘宝的架构师余庆,为我们提供了Nginx上使用的FastDFS模块(也可以叫FastDFS的Nginx模块);使用非常简单。
FastDFS通过Tracker服务器,将文件放在Storage服务器存储,但是同组之间的服务器需要复制文件,有延迟的问题。假设Tracker服务器将文件上传到了192.168.1.80,文件ID已经返回客户端,这时,后台会将这个文件复制到192.168.1.30,如果复制没有完成,客户端就用这个ID在192.168.1.30取文件,肯定会出现错误。这个fastdfs-nginx-module可以重定向连接到源服务器取文件,避免客户端由于复制延迟的问题,出现错误。

编译、安装Nginx

添加fastdfs-nginx-module

./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --add-module=/usr/local/src/fastdfs-nginx-module/src
make && make install

复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录

cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

修改mod_fastdfs.conf配置文件

connect_timeout=10                  # 客户端访问文件连接超时时长(单位:秒)
base_path=/tmp                      # 保存日志目录
tracker_server=192.168.0.200:22122  # tracker服务IP和端口
storage_server_port=23000           # storage服务端口
group_name=group1                   # 组名
url_have_group_name=true            # 访问链接前缀加上组名
store_path0=/mnt/fastdfs/storage        # 文件存储路径

复制 FastDFS 的部分配置文件到/etc/fdfs 目录

[root@hmhbt storage]# cd /usr/local/src/FastDFS/conf
[root@hmhbt conf]# cp http.conf mime.types /etc/fdfs/

配置nginx访问storage文件

user nobody;
worker_processes 1;
events {
    worker_connections 1024;
}
http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;
    server {
        listen 8888;
        server_name localhost;
        location ~/group([0-9])/M00 {
            root /mnt/fastdfs/storage;
            ngx_fastdfs_module;
        }
        error_page 500 502 503 504 /50x.html;

        location = /50x.html {
            root html;
        }
    }
}

如果下载时发现报 404, 将 nginx.conf 第一行 user nobody 修改为 user root 后重新启动。

以上属于原创文章,转载请注明作者@怪咖
QQ:208275451

你可能感兴趣的:(分布式文件系统(FastDFS)集群配置)