`

FastDFS、nginx配置手记

 
阅读更多

第一部分   FastDFS介绍

 

1.FastDFS是什么

 

    FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持LinuxFreeBSDAIXUNIX系统。它只能通过专有API对文件进行存取访问,不支持POSIX接口方式,不能mount使用。

    准确地讲,Google FS以及FastDFSmogileFS、 HDFS、TFS等类Google FS都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。

    FastDFS的作者是余庆,现在淘宝网Java中间件团队从事Java基础平台研发工作。

以上文字引用自<<程序员>> 文章 <<分布式文件系统FastDFS架构剖析>> http://www.programmer.com.cn/tag/fastdfs-架构/ 

 

2.FastDFS的体系结构

FastDFS、nginx配置手记
 

3.FastDFS工作过程

 

1. Client询问Tracker server上传到的Storage server

2. Tracker server返回一台可用的Storage server,返回的数据为该Storage serverIP地址和端口;

3. Client直接和该Storage server建立连接,进行文件上传,Storage server返回新生成的文件ID,文件上传结束。

 

FastDFS、nginx配置手记
 

1. Client询问Tracker server可以下载指定文件的Storage server,参数为文件ID(包含组名和文件名);

2. Tracker server返回一台可用的Storage server

3. Client直接和该Storage server建立连接,完成文件下载。

 

FastDFS、nginx配置手记
 

FastDFS从V1.20开始,支持通过HTTP协议下载文件。

1.用户浏览器访问Tracker server内置的Web ServerURL中包含文件ID(包含组名和文件名);

2.Tracker server将这个HTTP请求redirect到一台可用的Storage serverWeb Server(可以是apachenginx)

3.用户浏览器直接与Storage serverWeb Serverr建立连接,完成文件下载。

 FastDFS、nginx配置手记

 

 

第二部分   FastDFS+nginx_module配置手记

 

1.系统环境

 

最小化安装的 CentOS 5.6 x86_64

tracker server:   192.168.3.220

storage server:   192.168.3.226

 

2.环境准备[所有服务器上操作]

 

为了速度,配置使用sohu的源

cd /etc/yum.repo.d/

wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo

 

安装EPEL

rpm -ihv http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

 

安装开发工具和编译nginx所需的开发包

yum groupinstall "Development Tools"

yum install libevent-devel.x86_64 pcre-devel.x86_64  zlib-devel.x86_64

 

3.tracker上的操作[安装tracker server]

[root@tracker]# wget http://fastdfs.googlecode.com/files/FastDFS_v3.05.tar.gz

[root@tracker]# tar xvzf FastDFS_v3.05.tar.gz

[root@tracker]# cd FastDFS

[root@tracker]# vi make.sh

    将如下两行前边的"#"删除

    WITH_HTTPD=1

    WITH_LINUX_SERVICE=1

[root@tracker]# ./make.sh

[root@tracker]# ./make.sh install

[root@tracker]# vi /etc/fdfs/tracker.conf

    修改/etc/fdfs/tracker.conf,主要修改以下两处,如有其他调整,可参考文档自行调整,默认的配置也可以工作。

 

    # the base path to store data and log files

    base_path=/home/tracker     ====> 放置datalog的目录

 

    ##include http.conf   ====>   #include http.conf    这里一定要注意!是 #include,不是include!!!

 

[root@tracker]# mkdir -p /home/tracker

 

启动tracker服务

[root@tracker]#  /etc/init.d/fdfs_trackerd start

 

确认8080,22122端口已经监听

[root@tracker]# netstat -nl|grep -E '8080|22122'

tcp        0      0 0.0.0.0:22122               0.0.0.0:*                   LISTEN     

tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN     

 

4.storage上的操作

[root@storage]# wget http://fastdfs.googlecode.com/files/FastDFS_v3.05.tar.gz

[root@storage]# wget http://fastdfs.googlecode.com/files/fastdfs-nginx-module_v1.10.tar.gz

[root@storage]# wget http://nginx.org/download/nginx-1.0.11.tar.gz

[root@storage]# tar xvzf FastDFS_v3.05.tar.gz

[root@storage]# cd FastDFS

[root@storage]# ./make.sh

[root@storage]# ./make.sh install

 

[root@storage]# tar xvzf nginx-1.0.11.tar.gz

[root@storage]# tar xvzf fastdfs-nginx-module_v1.10.tar.gz

[root@storage]# cd nginx-1.0.11

[root@storage]# ./configure --prefix=/usr/local/nginx --add-module=/root/fastdfs-nginx-module/src

[root@storage]# make

[root@storage]# make install

 

[root@storage]# vi /etc/fdfs/storage.conf

    修改/etc/fdfs/storage.conf,主要修改以下几处,如有其他调整,可参考文档自行调整,默认的配置也可以工作。

 

    # the name of the group this storage server belongs to

    group_name=group1 ====> 此台storage server所属的服务器组名

   

    # the base path to store data and log files

    base_path=/home/storage ====> 放置datalog的目录

   

    # store_path#, based 0, if store_path0 not exists, it's value is base_path

    # the paths must be exist

    store_path0=/home/storage ====> 放置文件的目录

 

    # tracker_server can ocur more than once, and tracker_server format is

    #  "host:port", host can be hostname or ip address

    tracker_server=192.168.3.220:22122 ====> tracker serverip和端口,此处可以写多个tracker server,每行一个

 

    #HTTP settings

    http.disabled=true    ====> 关闭内置的web server

 

    # the port of the web server on this storage server

    http.server_port=80    ====> web server的端口改成80

 

[root@storage]# cp /root/fastdfs-nginx-module/mod_fastdfs.conf /etc/fdfs/

[root@storage]# vi /etc/fdfs/mod_fastdfs.conf

 

    # the base path to store log files

    base_path=/home/storage ====> 放置log的目录

 

    # FastDFS tracker_server can ocur more than once, and tracker_server format is

    #  "host:port", host can be hostname or ip address

    tracker_server=192.168.3.220:22122 ====> tracker serverip和端口,此处可以写多个tracker server,每行一个

 

    # the group name of storage server

    group_name=group1 ====> 此台storage server所属的服务器组名

 

    # if uri including group name

    # default value is false

    url_have_group_name = true ====> URL中包含group名称

 

    # store_path#, based 0, if store_path0 not exists, it's value is base_path

    # the paths must be exist

    store_path0=/home/storage ====> 放置文件的目录

 

[root@storage]# mkdir -p /home/storage

 

nginxserver配置段中增加M00location声明

[root@storage]# vi /usr/local/nginx/conf/nginx.conf

    location /group1/M00 {

            root /home/storage/data;

            ngx_fastdfs_module;

    }

 

创建M00目录的软连接

[root@storage]# ln -s /home/storage/data  /home/storage/data/M00

 

启动storage服务

[root@storage]#  /etc/init.d/fdfs_storaged start

 

启动nginx

[root@tracker]#  /usr/local/nginx/sbin/nginx

 

确认8080,22122端口已经监听

[root@storage]# netstat -nl|grep -E '80|23000'

tcp        0      0 0.0.0.0:23000               0.0.0.0:*                   LISTEN     

tcp        0      0 0.0.0.0:80                0.0.0.0:*                   LISTEN     

 

5.tracker上的操作[作为client测试]

 

修改/etc/fdfs/client.conf文件,主要修改以下几处,如有其他调整,可参考文档自行调整,默认的配置也可以工作。

    # the base path to store log files

    base_path=/tmp

 

    # tracker_server can ocur more than once, and tracker_server format is

    #  "host:port", host can be hostname or ip address

    tracker_server=192.168.3.220:22122

 

创建一个用于测试的文件demofile.txt

[root@tracker]# vi demofile.txt
    内容就一行字:  dddddddddd

 

使用自带的fdfs_test上传文件测试。

[root@tracker]# /usr/local/bin/fdfs_test /etc/fdfs/client.conf upload demofile.txt

This is FastDFS client test program v3.05

 

Copyright (C) 2008, Happy Fish / YuQing

 

FastDFS may be copied only under the terms of the GNU General

Public License V3, which may be found in the FastDFS source kit.

Please visit the FastDFS Home Page http://www.csource.org/

for more detail.

 

[2012-01-20 14:36:04] INFO - base_path=/tmp, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0

 

tracker_query_storage_store_list_without_group:

        server 1. group_name=group1, ip_addr=192.168.3.226, port=23000

 

group_name=group1, ip_addr=192.168.3.226, port=23000

storage_upload_by_filename

group_name=group1, remote_filename=M00/00/00/wKgD4k8ZC1SNK-NYAAAAC3lx3Rk484.txt

source ip address: 192.168.3.226

file timestamp=2012-01-20 14:36:04

file size=11

file crc32=2037505305

file url: http://192.168.3.220:8080/group1/M00/00/00/wKgD4k8ZC1SNK-NYAAAAC3lx3Rk484.txt

storage_upload_slave_by_filename

group_name=group1, remote_filename=M00/00/00/wKgD4k8ZC1SNK-NYAAAAC3lx3Rk484_big.txt

source ip address: 192.168.3.226

file timestamp=2012-01-20 14:36:04

file size=11

file crc32=2037505305

file url: http://192.168.3.220:8080/group1/M00/00/00/wKgD4k8ZC1SNK-NYAAAAC3lx3Rk484_big.txt

 

6.使用浏览器打开上传的文件

 

我们在浏览器中输入http://192.168.3.220:8080/group1/M00/00/00/wKgD4k8ZC1SNK-NYAAAAC3lx3Rk484.txt

FastDFS、nginx配置手记

可以看到,访问的地址已经被redirect到了storage serverIP(192.168.3.226)了。

  • 大小: 44.2 KB
  • 大小: 12.7 KB
  • 大小: 12.8 KB
  • 大小: 22 KB
  • 大小: 29.1 KB
分享到:
评论

相关推荐

    fastdfs-nginx-module-1.24

    《FastDFS-Nginx-Module 1.24:高效文件服务器集成详解》 FastDFS-nginx-module 1.24 是一个针对 FastDFS 文件系统的 Nginx 模块,它使得 Nginx 可以无缝地与 FastDFS 集成,提供了高效的文件上传、下载服务。这一...

    fastDFS+Nginx_fastdfs_fastdfs、nginx_fastdfs/nginx_

    - 配置Nginx,添加fastdfs-nginx-module的配置,如`/etc/nginx/conf.d/fastdfs.conf` - 设置Nginx与FastDFS的连接参数,如tracker服务器地址和端口 3. **测试FastDFS+nginx集成** - 使用FastDFS客户端上传文件,...

    fastdfs-nginx-module-1.20.zip

    在FastDFS的配置文件(如`/etc/fdfs/trackerserver.conf`和`/etc/fdfs/storage.conf`)中,设置Nginx的相关参数,如`nginx_conf_path`指向Nginx的配置文件路径,`nginx_http_server_port`为Nginx监听的HTTP端口。...

    fastdfs-nginx-module-正版V1.19-亲测可用 .zip

    4. 配置FastDFS和Nginx:配置FastDFS的连接参数,如tracker服务器地址,以及Nginx的服务器配置,如URL映射规则。 5. 启动和测试:启动Nginx服务,进行文件上传和下载的测试,确保一切正常。 在运维层面,FastDFS-...

    fastdfs-nginx-module_v1.16.tar.gz源码包,nginx支

    配置Nginx的配置文件,包括设置FastDFS的连接参数、URL重写规则等,以实现Nginx与FastDFS的交互。 5. **使用场景**:这个插件适用于那些使用FastDFS作为存储系统的网站或应用,可以提高文件访问性能,简化架构,...

    fastdfs-nginx-module_master.zip

    Nginx可以通过配置成为静态文件服务器,或者作为动态内容的反向代理,与FastDFS结合,可以实现文件的高速访问。 FastDFS-nginx-module是将Nginx与FastDFS整合的关键组件,它是一个Nginx的第三方模块,使得Nginx可以...

    fastdfs-nginx-module-master.zip

    这个压缩包中的"fastdfs-nginx-module-master"目录很可能是FastDFS-Nginx模块的源代码仓库,包含了所有必要的文件和配置,用于编译和安装这个模块,使得Nginx能够直接处理FastDFS的文件请求,提高系统的响应速度和...

    fastdfs-nginx-module-1.22.zip

    安装完成后,配置Nginx的配置文件,添加FastDFS-Nginx-Module的相关指令,如`location`块中的`fastdfs_mod`,并设置URL路径规则。 实际应用中,FastDFS-Nginx-Module提供了丰富的API接口,可以方便地在Web应用中...

    fastdfs安装包(fastdfs-6.06,fastdfs-nginx-module-1.22,nginx-1.16.1)

    4. 安装fastdfs-nginx-module-1.22:将其编译为Nginx的模块,并配置Nginx,指定FastDFS的连接信息。 5. 安装Nginx-1.16.1:编译安装Nginx,配置反向代理规则,指向FastDFS的HTTP接口。 6. 配置负载均衡:如果有多台...

    fastDFS整合nginx主要配置文件/etc/fdfs

    2. 配置Nginx服务器,添加FastDFS的模块,并配置好`mod_fastdfs.conf`。 3. 配置Nginx的HTTP部分,使其可以处理HTTP请求并正确地转发给FastDFS。 4. 重启Nginx服务,使新配置生效。 5. 进行测试,通过Nginx尝试上传...

    fastdfs-nginx-module1.20

    配置过程中,需要设置FastDFS的连接参数,如tracker服务器地址、端口等,以及Nginx的location配置,确保正确解析FastDFS的URL路径。 2. **URL路径格式**:FastDFS-Nginx-Module识别特定的URL格式,例如`/group1/M00...

    fastdfs-nginx-module_v1.16.tar.gz

    5. 修改Nginx配置:在Nginx配置文件中添加fastdfs-nginx-module的相关配置,如tracker服务器地址、存储组信息等。 6. 启动Nginx:重新加载或重启Nginx服务,使配置生效。 在实际应用中,fastdfs-nginx-module提供了...

    最新版linux fastdfs-nginx-module-1.22.tar.gz

    4. **配置修改**:在Nginx配置文件中添加FastDFS模块的相关配置,如tracker服务器地址、存储组信息等。 5. **启动测试**:启动Nginx和FastDFS服务,验证文件上传和下载功能是否正常。 了解这些基础知识后,你可以...

    fastdfs-nginx-module_v1.19

    Fastdfs-nginx-module_v1.19是这个组件的特定版本,它包含了一系列的源代码和配置文件,用于在Nginx服务器上安装和配置FastDFS的对接。这个版本可能修复了之前版本的一些已知问题,优化了性能,或者增加了新的特性,...

    fastdfs-nginx-module.zip

    通过配置Nginx的服务器块,我们可以指定FastDFS的URL路径规则,使得HTTP请求能够正确地路由到FastDFS。 3. **安装过程**:首先,我们需要在服务器上安装FastDFS及其依赖,包括libfdfsclient、libfastcommon等。接着...

    FastDFS+Nginx+libfastcommon+fastdfs-nginx-module

    - 编辑`nginx.conf`,添加FastDFS模块的配置,如连接Tracker的地址、FastDFS的存储路径等。 - 设置Nginx的反向代理规则,使Nginx能够处理FastDFS的HTTP请求。 7. 启动Nginx服务: - 使用`sudo service nginx ...

    fastdfs+nginx完整安装包(含安装说明及.net测试客户端)

    3. 配置Nginx的配置文件`/etc/nginx/nginx.conf`,添加FastDFS模块相关的配置。 四、启动与测试 1. 启动FastDFS的Tracker和Storage服务: ```bash sudo service fastdfs_tracker start sudo service fastdfs_...

    FastDFS nginx扩展模块

    FastDFS nginx扩展模块。

Global site tag (gtag.js) - Google Analytics