`

使FastDFS支持HTTP下载配置记录

阅读更多

参考:http://linux.chinaunix.net/bbs/thread-1158975-1-1.html

 

FastDFS从V1.20开始支持通过HTTP协议下载文件,作者推荐的配置方案为:tracker使用自带的Web Server,storage server上架设其他Web Server,如nginx、apache。

 

按上述方案进行了配置,配置过程如下:

一、配置tracker服务器
1、切换到FastDFS 主目录:

cd FastDFS

(1)打开make.sh文件,找到 #WITH_HTTPD=1 ,去掉最前面的#,保存;
(2)依次执行以下脚本:

./make.sh clean
./make.sh
./make.sh install

 注意:
1)HTTP用到了libevent,如果没有安装,编译程序前需要先安装(需要1.4.x版本),目前已有libevent-1.4.12-stable版本,libevent安装方法详见 libevent安装方法

2)执行./make.sh install时可能需要root权限。

 

2、修改tracker配置,打开tracker.conf ,找到下列片段,将值改为与红色 部分一致,蓝色 部分视实际端口占用情况自行选择是否修改:
# HTTP port on this tracker server
http.server_port=
8080

#use "#include" directive to include http other settiongs
#include http.conf

 

3、重启tracker服务:

命令格式:/usr/local/bin/restart.sh /usr/local/bin/fdfs_trackerd <tracker_conf_filename>

查看tracker日志文件,如有类似如下信息,说明http服务已启动成功:

INFO - HTTP supported: server_port=8080, default_content_type=application/octet-stream, anti_steal_token=0, token_ttl=0s, anti_steal_secret_key length=0, token_check_fail content_type=, token_check_fail buff length=0, check_active_interval=30, check_active_type=tcp, check_active_uri=/status.html

另外也可以通过 telnet IP 端口号 netstat -allnetstat -an | grep -w 端口号 来查看所配置的http端口是否已启用。


二、配置storage服务器(使用Apache作为Web Server,如有多台storage服务器则需一一配置,过程类似;如果用内置的 Web Server,则过程与tracker的配置类似

1、安装Apache:

(1) 下载安装包:httpd-2.2.15.tar.gz

(2) 解压,然后切换到主目录,进行安装,即依次执行:

tar zxvf httpd-2.2.15.tar.gz
./configure --prefix=/usr/local/apr-httpd/
make
make install
 

 注意:

1)./configure —prefix=/usr/local/apr-httpd/ 表示安装目录为 /usr/local/apr-httpd/ 。

2)执行 make.sh install 时可能需要root权限。

 

(3) 打开配置文件/usr/local/apr-httpd/conf/httpd.conf ,找到下列片段,将红色 部分按蓝色 注释进行修改(需要root权限):

片段1:

#Listen 12.34.56.78:80
Listen 80

# Apache2监听端口,也就是网站的http端口,可以根据实际情况进行修改,与storage.conf 中的http.server_port= 配置是一个意思。

 

片段2:

<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch. 
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon # 改为:当前用户名
Group daemon # 改为:root

</IfModule>
</IfModule>

 

片段3:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all # 改为Allow
</Directory>

 

片段4:

<IfModule alias_module>
    #
    # Redirect: Allows you to tell clients about documents that used to
    # exist in your server's namespace, but do not anymore. The client
    # will make a new request for the document at its new location.
    # Example:
    # Redirect permanent /foo http://www.example.com/bar

    #
    # Alias: Maps web paths into filesystem paths and is used to
    # access content that does not live under the DocumentRoot.
    # Example:
    # Alias /webpath /full/filesystem/path
    #
    # If you include a trailing / on /webpath then the server will
    # require it to be present in the URL.  You will also likely
    # need to provide a <Directory> section to allow access to
    # the filesystem path.
    Alias /group1/M00 "/FastDFS/data"

     # 增加这一行(设置虚拟目录),/group1/M00 为 group_name 加上存储区域base_path的URL片段,如果存放的base_path只有一个,则固定为M00,后面引号中的路径即为存储区域的绝对路径(storage.conf 中 配置项 store_path0 的值再加上 /data);如果 storage.conf 中配置了多个存储区域,则这里也需一一对应配置(一行Alias对应一个存储配置)。

    #
    # ScriptAlias: This controls which directories contain server scripts.
    # ScriptAliases are essentially the same as Aliases, except that
    # documents in the target directory are treated as applications and
    # run by the server when requested rather than as documents sent to the
    # client.  The same rules about trailing "/" apply to ScriptAlias
    # directives as to Alias.
    #
    ScriptAlias /cgi-bin/ "/usr/local/apr-httpd//cgi-bin/"

</IfModule>

 

片段5:

<Directory "/usr/local/apr-httpd//cgi-bin ">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

# 需改为与 片段4 Alias 引号中的值一致。表示设置该虚拟目录的访问权限。有多个Alias 配置时,需要配置多个 <Directory "...">...</Directory> 与之一一对应。

 

(4)启动Apache HTTP Server,执行(可能需要 root 权限):
/usr/local/apr-httpd/bin/apachectl -k start

 

三、下载测试

1、在 storage 服务器上通过命令行上传1个文件:/usr/local/bin/fdfs_test <storage_conf_filename> upload <file_to_upload>

控制台出现类似如下信息:

 

2.下载文件:浏览器访问 file url 或执行 wget <file url> ,如顺利下载文件则表示配置成功。

 

注意:
控制台打印的 file url 缺少了http端口号,自行加上即可(使用tracker中配置的端口号,会自动跳转到storage)。

  • 大小: 49.7 KB
分享到:
评论
2 楼 tvmovie 2012-07-18  
amazingstar 写道
哥们 问个事 如何上传的是图片也会下载吗?


忘记了,应该也是能下载的吧。
1 楼 amazingstar 2012-07-16  
哥们 问个事 如何上传的是图片也会下载吗?

相关推荐

    分布式文件系统FastDFS架构剖析及配置优化

    ### 分布式文件系统FastDFS架构剖析及配置优化 #### FastDFS概述 FastDFS是一款开源的轻量级分布式文件系统,由纯C语言编写而成,适用于Linux、FreeBSD等UNIX系统环境。它并非一个通用的文件系统,而是设计用于...

    fastdfs三个依赖包

    libfastcommon是FastDFS的基础库,包含了各种常用的数据结构、网络通信、日志记录等功能,为FastDFS和其他依赖FastDFS的组件提供基础支持。在编译FastDFS和FastDFS-Nginx模块时,都需要依赖这个库。安装...

    fastdfs-6.07.tar.gz

    1. 文件存储:FastDFS支持文件的上传和下载操作,文件存储在服务器集群上,提供高可用性和冗余备份。 2. 负载均衡:FastDFS通过Tracker服务器实现负载均衡,根据服务器状态动态分配文件存储和访问请求。 3. 文件同步...

    fastDFS+Nginx安装包(Linux版本)

    fastdfs-nginx-module是Nginx的一个模块,用于集成FastDFS,使Nginx能够直接处理FastDFS的HTTP请求。这个模块使得用户可以直接通过HTTP协议上传和下载文件,无需关心FastDFS的底层实现。安装此模块后,Nginx将作为...

    fastdfs集群搭建整合包

    7. **配置Nginx**:配置Nginx的HTTP服务器部分,使其与FastDFS模块集成,处理文件请求。 8. **测试FastDFS**:上传、下载文件,验证FastDFS集群是否正常工作。 以上就是基于给定文件信息构建FastDFS集群的基本过程...

    fastDFS断点续传实例

    解压"vvhcc-fastdfs",导入IDE,配置好Maven环境和FastDFS相关环境变量,然后运行测试用例或者独立的上传/下载程序,观察断点续传功能是否正常工作。 7. **注意事项** - 断点续传需要客户端和服务器端配合,因此...

    fastdfs-5.11安装合集

    服务器主要负责文件的存储、同步和提供HTTP下载服务,客户端则负责文件上传和下载。FastDFS采用C语言编写,具有高性能、高可用性、易于部署和扩展的特点。 二、FastDFS组件解析 1. libfastcommon:FastDFS的基础库...

    fastDFS_v5.05集合安装包

    同时,FastDFS支持多组存储,可以在一组存储服务器出现故障时,自动切换到其他组,保证服务的连续性。 总的来说,FastDFS_v5.05集合安装包提供了一站式的解决方案,涵盖了FastDFS及其主要依赖库,使得用户可以快速...

    FastDfs组件.zip

    4. libfastcommon:这是一个FastDfs的依赖库,包含了FastDfs所需的一些通用函数和工具,如字符串处理、内存管理、网络通信等,为FastDfs提供了基础的支持。 5. fastdfs-nginx-module:这是FastDfs的Nginx模块,允许...

    fastdfs-nginx-module-1.24

    FastDFS-nginx-module 1.24 是一个针对 FastDFS 文件系统的 Nginx 模块,它使得 Nginx 可以无缝地与 FastDFS 集成,提供了高效的文件上传、下载服务。这一版本是针对 FastDFS 的最新更新,旨在优化性能,提高稳定性...

    FastDFS+Nginx+libfastcommon+fastdfs-nginx-module

    - 设置Nginx的反向代理规则,使Nginx能够处理FastDFS的HTTP请求。 7. 启动Nginx服务: - 使用`sudo service nginx start`启动Nginx。 至此,FastDFS+Nginx+libfastcommon+fastdfs-nginx-module的环境已搭建完成...

    FastDFS安装步骤.zip

    6. **配置Nginx**:在Nginx的配置文件中,引入FastDFS的模块,配置反向代理规则,将HTTP请求转发到FastDFS服务器。 7. **测试上传下载**:通过FastDFS客户端工具,如`fdfs_test`,进行文件上传和下载测试,确保...

    FastDFS集群安装配置

    ### FastDFS集群安装配置 #### 一、FastDFS简介 FastDFS是由淘宝的余庆先生开发的一款轻量级、高性能的开源分布式文件系统。它采用纯C语言编写,旨在为大规模存储需求提供解决方案,适用于需要处理大量图片、音...

    FastDFS搭建文件管理系统,亲测,可用,详细

    完成Nginx的编译安装后,需要进一步配置Nginx以支持FastDFS的HTTP访问。 **3.3 访问文件** 配置完成后,可通过HTTP方式访问FastDFS中存储的文件。 #### 四、FastDFS配置Nginx模块 **4.1 安装配置Nginx模块** 为了...

    fastdfs-java客户端代码

    2. 并发支持:在高并发环境下,可以考虑使用线程池来优化文件上传下载的效率,同时避免过多的并发请求对服务器造成压力。 3. 持久化管理:可以设计缓存策略,将常用的文件元数据(如文件ID、文件路径等)缓存起来,...

    linux最新 fastdfs-6.06.tar.gz fastdfs-nginx-module1.22.tar,gz libfastcommon-1.0.4

    Linux系统中的FastDFS是一个开源的高性能、轻量级的分布式文件系统,主要设计用于互联网环境,支持大量的小文件存储。FastDFS提供了文件存储、文件同步、文件访问(文件上传、文件下载)等功能,解决了大容量存储和...

    Python-基于Fastdfs和Python的分布式文件存储系统

    FastDFS支持断点续传,但Python客户端是否支持需要查看具体实现。 5. **文件操作**:除了基本的上传和下载,FastDFS还支持文件的元数据管理、文件重命名、文件删除等操作,Python客户端库通常也提供相应的接口。 6...

    Fastdfs搭建

    - 配置 Storage 服务,修改 `/usr/softAddress/FastDFS/conf/storage.conf` 文件,例如设置存储路径等。 - 将配置文件复制到 `/etc/fdfs/` 目录下。 - 启动 Storage 服务,使用 `/usr/bin/fdfs_storaged /etc/...

    FastDFS_v5.02.tar.gz

    同时,FastDFS支持多组并行运行,可以根据需要横向扩展存储容量。 7. **容错机制**:当某个Storage节点故障时,Tracker会自动将请求转发到其他正常工作的节点,保证服务的连续性。同时,Slave节点的存在可以提供...

    FastDFS和Linux下安装使用FastDFS

    FastDFS 能够满足大规模文件存储的需求,包括文件存储、文件同步、文件访问(上传、下载)、存取负载均衡、在线扩容等功能。在分布式系统开发中,特别是涉及到大量图片、音视频、文件共享场景时,FastDFS 提供了一个...

Global site tag (gtag.js) - Google Analytics