fastdfs配置
服务器环境
fastdfs-trackerd 192.168.32.128
fastdfs-storage 192.168.32.129
分别在两个服务器上面安装好fastdfs服务
1.安装依赖
yum install openssl* -y
yum install gd-devel -y
yum install pcre-devel -y
2.安装lbevent
tar zxvf libevent-1.4.14b-stable.tar.gz
cd libevent-1.4.14b-stable
./configure --prefix=/usr/local/libevent
make
make install
export LD_LIBRARY_PATH=/usr/local/libevent/lib
3..安装fastdfs
tar zxvf FastDFS_v4.07.tar.gz
cd FastDFS
./make.sh C_INCLUDE_PATH=/usr/local/libevent/include LIBRARY_PATH=/usr/local/libevent/lib
./make.sh install
4.创建fastdfs存储目录
mkdir /data/fastDFS
5.在tracker修改配置文件
vim /etc/fdfs/tracker.conf
bind_addr=192.168.32.128 绑定tracker服务器ip
base_path=/data/fastDFS 存放数据和日志的根目录地址(这个目录必须存在,其下的子目录自动生成
max_connections=256 系统提供服务时最大连接数
work_threads=4工作显成熟,通常设置为cpu数,默认为4
store_lookup=2上传文件到组的方式,
0:轮询 1:制定组 2:平均负载(选择最大剩余空间的组上传)。
store_group=group2当store_lookup设置为1时。必须设置本参数为系统存在的一个组名
store_server=0选择哪个storage server进行上传
0:轮询(默认方式)1:根据ip地址进行排序(选择ip地址最小的) 2:根据优先级进行排序(上传优先级由storage_server来设置,参数名为upload_priority)
store_path=0 选择storage server中的那个目录进行上传,storage server可以有多个存放文件的base_path,可以理解为多个磁盘。
0:轮流方式,多个目录一次存放文件 2:选择生育空间最大的目录存放文件
download_Server=0 选择哪个storage server作为下载服务器
0:轮询方式,可以下载当前文件的任一storage server
1:哪个为源storage server就用哪一个,就是之前上传到那个storage server服务器就是哪个!
reserved_storage_space=10%storage server上的保留空间,保证系统或其他应用需求空间。
run_by_user=从操作系统运行FDFS的用户(不填,就是当前用户)
allow_hosts=*可以连接到此tracker server的ip范围。可以配置多行
sync_log_buff_interval=10 同步或刷新日志信息到硬盘的时间间隔,默认为秒
check_active_interval=120检测storage server存活的时间间隔,以秒为单位
thread_stack_size=64KB线程栈的大小,线程越大,占用资源越大。此值必须大于64KB
storeage_ip_changed_auto_adjust=true 这个参数控制当storage server ip改变时,集群是否自动调整。注:只有在storage server进程重启时才完成自动调整
storage_sync_file_max_delay=86400 storage server之间同步文件的最大延迟时间,以秒为单位,缺省为1天
storage_sync_file_max_time=300同步一个文件需要消耗的最大时间,以秒为单位
use_trunk_file=fakse是否使用trunk file来合并小文件,缺省是关闭的
slot_min_size=256trunk file分配的最小字节数,比如文件只有16个字节,系统也会分配slot_min_size个字节
slot_max_size=16MB只有文件大小<=这个参数值得文件,才会合并存储,如果文件大小大于这个值,将直接保存到一个文件中(不采用合并存储)
trunk_file_size=64MB合并存储的trunk file大小,至少4MB.缺省值为64MB,不建议设置过大
use_storage_id=false是否使用server id作为storage server标识
storage_ids_filename=storage_ids.conf在文件中设置组名。server id和对用的ip地址
id_type_in_filename=ip 设置文件名中的storage server的标识
ip:storage server的ip地址
id:storage server的server id
rotate_error_log=flase是够定期轮转error log,目前仅支持一天轮转一次,建议设置为true!
error_log_rotate_time=00:00设置error log定期轮转的时间点。当rotate_error_log为true时有效
connection_poll_max_idle_time=3600最大连接等待时间,以秒为单位
http.server_port=80 (http服务端口,可以不设置)
http.check_alive_interval=30 检测storage http server存活的时间间隔, 以秒为单位
http.check_alive_type=tcp检测storage http server存活的方式,默认为tcp
http.check_alive_url=/status.html检测storage http server是否存活的url
#include http.conf
/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf 启动服务
修改client.conf
vim /etc/fdfs/client.conf
base_path=/data/fastDFS
tracker_server=192.168.32.128:22122
http.tracker_server_port=80
#include http.conf
在storage服务器安装nginx。用来上传和下载文件
#1.下载fastdfs-nginx-module_v1.15.tar.gz
tar -zxvf fastdfs-nginx-module_v1.15.tar.gz -C /usr/local
#2.安装nginx
tar zxvf nginx-1.6.0.tar.gz
cd nginx-1.6.0
cd /usr/local
tar zxvf fastdfs-nginx-module_v1.15.tar.gz
yum -y install pcre openssl gd*
./configure --prefix=/usr/local/nginx \
--with-file-aio \
--with-http_ssl_module \
--with-http_image_filter_module \
--with-http_sub_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-pcre \
--with-cc-opt=‘-O3 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic‘ \
--with-ld-opt=-Wl,-E \
--with-http_realip_module \
--with-http_gzip_static_module \
--add-module=/usr/local/fastdfs-nginx-module/src
export LD_LIBRARY_PATH=/usr/local/libevent/lib/
cp mod_fastdfs.conf /etc/fdfs/
make && make install
修改mod_fastdfs.conf
vim /etc/fdfs/mod_fastdfs.conf
connect_timeout=20
base_path=/data/fastDFS
tracker_server=192.168.32.128:22122
store_path0=/data/fastDFS
url_have_group_name = true
修改nginx.conf
vim /usr/local/nginx/conf/nginx.conf
在server段添加以下内容
location /group1/M00/
{
alias /www/fastDFS/data/;
ngx_fastdfs_module;
}
/usr/local/nginx/sbin/nginx -t检查配置文件参数
/usr/local/nginx/sbin/nginx 启动nginx
在storage修改配置文件
vim /etc/storage.conf
bind_addr=192.168.32.129
base_path=/data/fastDFS
store_path0=/data/fastDFS
tracker_server=192.168.32.128:22122
http.server_port=80
/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf 启动服务
测试:上传文件
cat ./.bash_profile >> 2.txt
/usr/local/bin/fdfs_test /etc/fdfs/client.conf upload 2.txt
This is FastDFS client test program v4.07
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.
[2014-12-31 09:20:40] DEBUG - base_path=/data/fastDFS, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0
tracker_query_storage_store_list_without_group:
server 1. group_name=, ip_addr=192.168.32.129, port=23000
group_name=group1, ip_addr=192.168.32.129, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKgggVSjQ-iAJxtqAAAAsFQ-X38886.txt
source ip address: 192.168.32.129
file timestamp=2014-12-31 08:31:36
file size=176
file crc32=1413373823
example file url: http://192.168.32.129/group1/M00/00/00/wKgggVSjQ-iAJxtqAAAAsFQ-X38886.txt
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/wKgggVSjQ-iAJxtqAAAAsFQ-X38886_big.txt
source ip address: 192.168.32.129
file timestamp=2014-12-31 08:31:36
file size=176
file crc32=1413373823
example file url: http://192.168.32.129/group1/M00/00/00/wKgggVSjQ-iAJxtqAAAAsFQ-X38886_big.txt
用浏览器访问 http://192.168.32.129/group1/M00/00/00/wKgggVSjQ-iAJxtqAAAAsFQ-X38886_big.txt 就能看到上传的文件了
上传的文件放在/data/fastDFS/data/00/00中
查看端口
netstat -tunpl
配置fastdfs支持php
yum -y install php*
cd /root/FastDFS/php-client
phpize 用来准备php扩展库的编译环境
./configure
make
make install
cat fastdfs_client.ini >> /etc/php.ini
/usr/bin/php -m | grep fastdfs
service php-fpm start
修改/etc/fdfs/client.conf
tracker_server=192.168.32.128:22122
http.tracker_server_port=80
echo ‘php_upload_test‘ > /tmp/upload.txt
vim test.php
<?php
var_dump(function_exists(‘fastdfs_storage_upload_by_filename‘));
$ret = fastdfs_storage_upload_by_filename(‘
/tmp/upload.txt
‘);
var_dump($ret);
?>
/usr/bin/php test.php
bool(true)
成功
array(2) {
["group_name"]=>
string(6) "group1"
["filename"]=>
string(44) "M00/00/00/wKgggVSjbDaATlrAAAAAEIxdRHw661.txt"
}
/etc/init.d/php-fpm reload
最后用浏览器访问这个,看是否能访问到