源码:http://code.google.com/p/fastdfs/php
论坛:http://bbs.chinaunix.net/forum-240-1.htmlhtml
配置说明:http://bbs.chinaunix.net/thread-1941456-1-1.htmlnginx
1. 服务器说明git
角色github |
IPweb |
操做系统服务器 |
依赖软件并发 |
tracker负载均衡 |
162.119.111.183高并发 |
SUSE11.SP1 |
Fastdfs libevent nginx |
storage |
162.119.111.183 162.119.111.184 |
SUSE11.SP1 |
Fastdfs libevent nginx fastdfs-nginx-module |
2. 软件版本
软件名 |
版本 |
下载路径 |
libevent |
|
https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz |
Fastdfs |
V4.0.6 |
http://fastdfs.googlecode.com/files/FastDFS_v4.06.tar.gz |
fastdfs-nginx-module |
v1.15 |
https://fastdfs.googlecode.com/files/fastdfs-nginx-module_v1.15.tar.gz |
nginx |
|
http://nginx.org/download/nginx-1.4.4.tar.gz |
3. 安装libevent
>> tar zvxf libevent-2.0.21-stable.tar.gz
>> cd libevent-2.0.21-stable
>> ./configure --prefix=/usr (必须安装到这里)
>> make
>>make install
64为系统执行
ln -s /usr/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
4. 安装FastDFS
>> tar zvxf FastDFS_v4.06.tar.gz
>> cd FastDFs
>> ./make.sh
>> ./make.sh install
安装成功后,FastDFS 安装在/usr/local/bin中。配置文件在/etc/fdfs中
至此,FastDFS安装完毕
5. Storage上安装nginx
FastDFS经过HTTP服务器来提供HTTP服务。为了支持高并发的访问,以及提供负载均衡等高性能的服务,本示例使用nginx做为HTTP服务器,FastDFS为咱们提供了Nginx上使用的FastDFS模块(fastdfs-nginx-module)。此步操做只须要在storage上执行。tracker上不用执行。
>> tar -zxvf fastdfs-nginx-module_v1.11.tar.gz
(解压后的路径为/home/fastdfs/fastdfs-nginx-module/)
>> tar -zxvf nginx-1.4.4.tar.gz
>> cd nginx-1.4.4
>>./configure --add-module=/usr/fastdfs-nginx-module/src
>> make
>> make install
1. tracker启动
mkdir /home/fastdfs/storage
vi /etc/fdfs/tracker.conf
base_path=/home/fastdfs/tracker ====>放置data和log的目录。这个路径必须存在。
##include http.conf 修改成#include http.conf ====> 这里必定要注意!是 #include,不是include!!! 若是没有此配置项,则不须要处理
启动:
/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
关闭:
/usr/local/bin/stop.sh /usr/local/bin/fdfs_tracker
2. storage启动
mkdir /home/fastdfs/storage
vi /etc/fdfs/storage.conf
group_name=group1 ==> 此台storage server所属的服务器组名。
base_path=/home/fastdfs/storage ==>放置data和log的目录。此路径必须保证存在。
store_path0=/home/fastdfs/storage ==> 放置文件的目录,此路径必须保证存在.
tracker_server=162.119.111.183:22122
http.disabled=true ==>关闭内置的web server,若是有就设置,不然就不用设置。
http.server_port=8080 ===> web server的端口改为8080(与nginx 端口一致)
cp /usr/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
vi /etc/fdfs/mod_fastdfs.conf
base_path=/home/fastdfs/storage ==> 放置log的目录,与storage中的配置保持一致。
tracker_server=162.119.111.183:22122
group_name=group1 ==> 此台storage server所属的服务器组名。
url_have_group_name = true ==> 在URL中包含group名称。必定要设置true
store_path0=/home/fastdfs /storage ==> 放置文件的目录,与storage中保持一致
response_mode=proxy ==> 对文件同步延迟的处理方式,经过redirect跳转和proxy代理两种方式解决
group_count=2 ==>group的个数,在本示例中有两个group,因此设为2,若是只有一个group则设置为0,而不是为1
启动storage
/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
关闭 storage
/usr/local/bin/stop.sh /usr/local/bin/fdfs_storage
3. nginx启动(只需在storage启动)
vi /usr/local/nginx/conf/nginx.conf
server
{
location ~ /group([0-9])/M00
{
alias /home/fastdfs/storage/data;
ngx_fastdfs_module;
}
listen 8080;
server_name 162.119.111183;
}
启动ngnix
/usr/local/nginx/sbin/nginx
-----------------------------------------华丽的分割线-------------------------------------
到此fastdfs已经搭建完毕。
1. 查看集群状况
/usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf
2. Upload测试
vi /etc/fdfs/client.conf
base_path=/home/fastdfs/storage
tracker_server=162.119.111.183:22122
http.tracker_server_port=8080 //这个必定要跟tracker.conf里面配置的同样
##include http.conf 修改成#include http.conf ====> 这里必定要注意!是 #include,不是include!!! 若是没有此配置项,则不须要处理
/usr/local/bin/fdfs_test /etc/fdfs/client.conf upload hello.txt
3. 下载测试
FastDFS 4.06Tracker Server再也不内置http服务
访问文件有四种方式
1, 直接storage ip方式, 可供临时访问,
2, dns轮转
3, 负载均衡设备
4, 加一层代理.
采用第三种方式,引入nginx,作反向代理进行负载均衡
安装nginx不用引入 --add-module=/home/fastdfs/fastdfs-nginx-module/src
>> tar -zxvf nginx-1.4.4.tar.gz
>> cd nginx-1.4.4
>>./configure
>> make
>> make install
vi /usr/local/nginx/conf/nginx.conf
upstream 162.119.111.183 {
server 162.119.111.183:8080 weight=10;
server 162.119.111.184:8080 weight=10;
}
server {
listen 80;
server_name 162.119.111.183;
location / {
proxy_pass http://162.119.111.183/;
proxy_redirect default ;
}
}
Notice:
*tracker 按正常部署。tracker 可部署在内网区,不对外。
*每一个storage都安装nginx的fastdfs扩展模块,防止访问到此storage时文件不在此处,扩展模块能自动到其余服务器拿文件。storage可部署在内网区,不对外。
*增长一个或多个负载均衡服务器(haproxy,nginx等),每一个group都作下storage配置,可负载,可解决单个storage服务器挂掉的问题。
参考:
http://www.cnblogs.com/chenfei0801/p/3455257.html
http://www.cnblogs.com/chenfei0801/p/3446697.html
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4101154