参考: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 -all
或 netstat -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
分享到:
相关推荐
### 分布式文件系统FastDFS架构剖析及配置优化 #### FastDFS概述 FastDFS是一款开源的轻量级分布式文件系统,由纯C语言编写而成,适用于Linux、FreeBSD等UNIX系统环境。它并非一个通用的文件系统,而是设计用于...
libfastcommon是FastDFS的基础库,包含了各种常用的数据结构、网络通信、日志记录等功能,为FastDFS和其他依赖FastDFS的组件提供基础支持。在编译FastDFS和FastDFS-Nginx模块时,都需要依赖这个库。安装...
1. 文件存储:FastDFS支持文件的上传和下载操作,文件存储在服务器集群上,提供高可用性和冗余备份。 2. 负载均衡:FastDFS通过Tracker服务器实现负载均衡,根据服务器状态动态分配文件存储和访问请求。 3. 文件同步...
FastDFS-nginx-module 1.24 是一个针对 FastDFS 文件系统的 Nginx 模块,它使得 Nginx 可以无缝地与 FastDFS 集成,提供了高效的文件上传、下载服务。这一版本是针对 FastDFS 的最新更新,旨在优化性能,提高稳定性...
fastdfs-nginx-module是Nginx的一个模块,用于集成FastDFS,使Nginx能够直接处理FastDFS的HTTP请求。这个模块使得用户可以直接通过HTTP协议上传和下载文件,无需关心FastDFS的底层实现。安装此模块后,Nginx将作为...
7. **配置Nginx**:配置Nginx的HTTP服务器部分,使其与FastDFS模块集成,处理文件请求。 8. **测试FastDFS**:上传、下载文件,验证FastDFS集群是否正常工作。 以上就是基于给定文件信息构建FastDFS集群的基本过程...
解压"vvhcc-fastdfs",导入IDE,配置好Maven环境和FastDFS相关环境变量,然后运行测试用例或者独立的上传/下载程序,观察断点续传功能是否正常工作。 7. **注意事项** - 断点续传需要客户端和服务器端配合,因此...
服务器主要负责文件的存储、同步和提供HTTP下载服务,客户端则负责文件上传和下载。FastDFS采用C语言编写,具有高性能、高可用性、易于部署和扩展的特点。 二、FastDFS组件解析 1. libfastcommon:FastDFS的基础库...
同时,FastDFS支持多组存储,可以在一组存储服务器出现故障时,自动切换到其他组,保证服务的连续性。 总的来说,FastDFS_v5.05集合安装包提供了一站式的解决方案,涵盖了FastDFS及其主要依赖库,使得用户可以快速...
4. libfastcommon:这是一个FastDfs的依赖库,包含了FastDfs所需的一些通用函数和工具,如字符串处理、内存管理、网络通信等,为FastDfs提供了基础的支持。 5. fastdfs-nginx-module:这是FastDfs的Nginx模块,允许...
- 设置Nginx的反向代理规则,使Nginx能够处理FastDFS的HTTP请求。 7. 启动Nginx服务: - 使用`sudo service nginx start`启动Nginx。 至此,FastDFS+Nginx+libfastcommon+fastdfs-nginx-module的环境已搭建完成...
6. **配置Nginx**:在Nginx的配置文件中,引入FastDFS的模块,配置反向代理规则,将HTTP请求转发到FastDFS服务器。 7. **测试上传下载**:通过FastDFS客户端工具,如`fdfs_test`,进行文件上传和下载测试,确保...
### FastDFS集群安装配置 #### 一、FastDFS简介 FastDFS是由淘宝的余庆先生开发的一款轻量级、高性能的开源分布式文件系统。它采用纯C语言编写,旨在为大规模存储需求提供解决方案,适用于需要处理大量图片、音...
完成Nginx的编译安装后,需要进一步配置Nginx以支持FastDFS的HTTP访问。 **3.3 访问文件** 配置完成后,可通过HTTP方式访问FastDFS中存储的文件。 #### 四、FastDFS配置Nginx模块 **4.1 安装配置Nginx模块** 为了...
2. 并发支持:在高并发环境下,可以考虑使用线程池来优化文件上传下载的效率,同时避免过多的并发请求对服务器造成压力。 3. 持久化管理:可以设计缓存策略,将常用的文件元数据(如文件ID、文件路径等)缓存起来,...
Linux系统中的FastDFS是一个开源的高性能、轻量级的分布式文件系统,主要设计用于互联网环境,支持大量的小文件存储。FastDFS提供了文件存储、文件同步、文件访问(文件上传、文件下载)等功能,解决了大容量存储和...
FastDFS支持断点续传,但Python客户端是否支持需要查看具体实现。 5. **文件操作**:除了基本的上传和下载,FastDFS还支持文件的元数据管理、文件重命名、文件删除等操作,Python客户端库通常也提供相应的接口。 6...
- 配置 Storage 服务,修改 `/usr/softAddress/FastDFS/conf/storage.conf` 文件,例如设置存储路径等。 - 将配置文件复制到 `/etc/fdfs/` 目录下。 - 启动 Storage 服务,使用 `/usr/bin/fdfs_storaged /etc/...
同时,FastDFS支持多组并行运行,可以根据需要横向扩展存储容量。 7. **容错机制**:当某个Storage节点故障时,Tracker会自动将请求转发到其他正常工作的节点,保证服务的连续性。同时,Slave节点的存在可以提供...
FastDFS 能够满足大规模文件存储的需求,包括文件存储、文件同步、文件访问(上传、下载)、存取负载均衡、在线扩容等功能。在分布式系统开发中,特别是涉及到大量图片、音视频、文件共享场景时,FastDFS 提供了一个...