当前位置:  开发笔记 > 编程语言 > 正文

FastDFS、Nginx配置过程笔记

第一部分FastDFS介?1.FastDFS是什?FastDFS是一款?GoogleFS的?源分布式文件系?,它用?C?言???,支持Linux、FreeBSD、AIX等UNIX系?。它只能通??S?PI?ξ募?M行存取???,不支持POSIX接口方式,不能mount使用。准?地?,GoogleFS以及FastDFS、

第一部分   FastDFS介?

1.FastDFS是什?

    FastDFS是一款?Google FS的?源分布式文件系?,它用?C?言???,支持Linux、FreeBSD、AIX等UNIX系?。它只能通??S?PI?ξ募?M行存取???,不支持POSIX接口方式,不能mount使用。

    准?地?,Google FS以及FastDFS、mogileFS、 HDFS、TFS等?Google FS都不是系??的分布式文件系?,而是??眉?的分布式文件存?Ψ?铡

    FastDFS的作者是??c,?在淘???Java中?件?F??氖?ava基?平台研?工作。

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

 

2.FastDFS的?系???

FastDFS、nginx配置手?
 

3.FastDFS工作?程

1. Client???Tracker server上?鞯降?torage server;

2. Tracker server返回一台可用的Storage server,返回的?????Storage server的IP地址和端口;

3. Client直接和?Storage server建立?接,?行文件上?鳎?torage server返回新生成的文件ID,文件上?鹘Y束。

 

FastDFS、nginx配置手?
 

1. Client???Tracker server可以下?指定文件的Storage server,参?滴?募?D(包含?名和文件名);

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

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

FastDFS、nginx配置手?
 

FastDFS??1.20?始,支持通?HTTP?f?下?文件。

1.用??g?器???Tracker server?戎玫?eb Server,URL中包含文件ID(包含?名和文件名);

2.Tracker server?⑦@??HTTP?求redirect到一台可用的Storage server的Web Server上(可以是apache或nginx);

3.用??g?器直接?Storage server的Web 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://go.rritw.com/mirrors.sohu.com/help/CentOS-Base-sohu.repo

安?EPEL源

rpm -ihv http://go.rritw.com/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://go.rritw.com/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

    ?⑷缦?尚星斑?的"#"?h除

    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,主要修改以下?商?,如有其他?整,可参考文?n自行?整,默?的配置也可以工作。

    # the base path to store data and log files

    base_path=/home/tracker     ====> 放置data和log的目?

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

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

 

启??racker服?

[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://go.rritw.com/fastdfs.googlecode.com/files/FastDFS_v3.05.tar.gz

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

[root@storage]# wget http://go.rritw.com/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,主要修改以下?滋?,如有其他?整,可参考文?n自行?整,默?的配置也可以工作。

    # the name of the group this storage server belongs to

    group_name=group1 ====> 此台storage server所?俚姆?掌鹘M名

   

    # the base path to store data and log files

    base_path=/home/storage ====> 放置data和log的目?

   

    # 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 server的ip和端口,此?可以??多??tracker server,每行一??

    #HTTP settings

    http.disabled=true    ====> ???戎玫?eb 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 server的ip和端口,此?可以??多??tracker server,每行一??

    # the group name of storage server

    group_name=group1 ====> 此台storage server所?俚姆?掌鹘M名

    # 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

 

在nginx的server配置段中增加M00的location?明

[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

启??torage服?

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

 

启??ginx

[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?y?]

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

    # 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

??建一??用於?y?的文件demofile.txt

[root@tracker]# vi demofile.txt
    ?热菥鸵恍凶?  dddddddddd

使用自?У?dfs_test上?魑募?y?。

[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://go.rritw.com/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://go.rritw.com/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://go.rritw.com/192.168.3.220:8080/group1/M00/00/00/wKgD4k8ZC1SNK-NYAAAAC3lx3Rk484_big.txt

6.使用?g?器打?上?鞯奈募

我??在?g?器中?入http://go.rritw.com/192.168.3.220:8080/group1/M00/00/00/wKgD4k8ZC1SNK-NYAAAAC3lx3Rk484.txt

FastDFS、nginx配置手?

可以看到,???的地址已?被redirect到了storage server的IP(192.168.3.226)了。

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有