一、安装 fastdfs
下载 libfastcommon 包
https://github.com/happyfish100/libfastcommon/releases
下载 fastdfs 源码包
https://github.com/happyfish100/fastdfs/releases
安装 libfastcommon
> tar xf libfastcommon-1.0.7.tar.gz
> cd libfastcommon-1.0.7
> ./make.sh
> ./make.sh install
|
安装 fastdfs
> tar xf fastdfs-5.09.tar.gz
> cd fastdfs-5.09
> ./make.sh
> ./make.sh install
如果出现 ioevent.h:82:2: #error port me 这样的错误,请下载最新版的 libfastcommon 并安装。
二、环境说明
创建两台虚拟主机,IP 分别为 192.168.1.222 和 192.168.1.233,分别安装 fastdfs。
三、fastdfs 的配置文件
配置文件默认在/etc/fdfs 下
默认脚本在/etc/init.d 下
创建两个目录,用来存放数据
> mkdir -p /data/fdfs_tracker
> mkdir -p /data/fdfs_storage
复制配置文件
> cd /etc/fdfs
> cp storage.conf.sample storage.conf
> cp tracker.conf.sample tracker.conf
跟踪器的配置文件 tracker.conf
#绑定IP
bind_addr=
#端口
port=22122
#连接超时时间
connect_timeout=30
#日志数据路径
base_path=/data/fdfs_tracker
#上传文件时选择group的方法
#0:轮询,1:指定组,2:选择剩余空间最大
store_lookup=2
#如果上面的配置是1,那么这里必须指定组名
store_group=group2
#上传文件时选择server的方法
#0:轮询,1:按IP地址排序,2:通过权重排序
store_server=0
#storage上预留空间
reserved_storage_space = 10%
存储节点的配置文件 storage.conf
#storage server所属组名
group_name=group1
#绑定IP
bind_addr=
#storage server的端口
port=23000
#连接超时时间
connect_timeout=30
#日志数据路径
base_path=/data/fdfs_storage/base
#storage path的个数
store_path_count=2
#根据store_path_count的值,就要有storage0到storage(N-1)个
store_path0=/data/fdfs_storage/storage0
store_path1=/data/fdfs_storage/storage1
#跟踪服务器
tracker_server=192.168.1.222:22122
tracker_server=192.168.1.233:22122
创建目录,不然会出错
> mkdir
-p /data/fdfs_storage/base
> mkdir
-p /data/fdfs_storage/storage0
> mkdir
-p /data/fdfs_storage/storage1
启动服务
> /etc/init.d/fdfs_trackerd start
> /etc/init.d/fdfs_storaged start
查看服务是否启动
> ps -ef|grep fdfs
> netstat -nltp
四、测试 fastdfs
配置 client 文件
> cd /etc/fdfs
> cp client.conf.sample client.conf
> vi client.conf
#存放日志目录
base_path=/data/client
#跟踪服务器
tracker_server=192.168.1.222:22122
tracker_server=192.168.1.233:22122
创建 client 目录
> mkdir
-p /data/client
通过 fdfs_upload_file 来测试(如果发生错误,请查看防火墙)
> echo
"12345678"
>> /data/1.txt
> fdfs_upload_file /etc/fdfs/client.conf /data/1.txt
通过 fdfs_download_file 下载我们刚上传的文件
> fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgB3li3a2mAejYPAAAADok0NhY177.txt
查看文件信息
> fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/wKgB3li3a2mAejYPAAAADok0NhY177.txt
追加文件
> echo
"hello"
>> /data/2.txt
> fdfs_upload_appender /etc/fdfs/client.conf /data/1.txt
> fdfs_append_file /etc/fdfs/client.conf group1/M00/00/00/wKgB3li3bxCEAcqhAAAAAIk0NhY869.txt /data/2.txt
删除文件
> fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgB3li3a2mAejYPAAAADok0NhY177.txt
查看集群
> fdfs_monitor /etc/fdfs/client.conf
|
五、fastdfs 的 nginx 模块
下载 pcre 和 nginx 源码包
https://ftp.pcre.org/pub/pcre/
如:pcre-8.40.tar.gz
http://nginx.org/en/download.html
如:nginx-1.10.3.tar.gz
https:``//github.com/happyfish100/fastdfs-nginx-module
如:fastdfs-nginx-module-master.zip
创建用户
> useradd -s /sbin/nologin -M nginx
安装 pcre
> tar xf pcre-8.40.tar.gz
> cd pcre-8.40
> ./configure --prefix=/data/pcre
> make && make install
安装 nginx
> yum install zlib-devel openssl-devel
> unzip fastdfs-nginx-module-master.zip
> tar xf nginx-1.10.3.tar.gz
> cd nginx-1.10.3
> ./configure --prefix=/data/nginx \
> --with-pcre=/data/pcre-8.40 \
> --user=nginx \
> --group=nginx \
> --with-http_ssl_module \
> --with-http_realip_module \
> --with-http_stub_status_module \
> --add-module=/data/fastdfs-nginx-module-master/src
> make && make install
拷贝配置文件
> cd /data/fastdfs-nginx-module-master/src
> cp mod_fastdfs.conf /etc/fdfs/
> cd /data/fastdfs-5.09/conf
> cp anti-steal.jpg http.conf mime.types /etc/fdfs/
修改 nginx.conf
> vi /data/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;
location ~ /group[0-9]/M00 {
ngx_fastdfs_module;
}
}
修改 mod_fastdfs.conf
> vi /etc/fdfs/mod_fastdfs.conf
#日志目录
base_path=/tmp
#跟踪服务器
tracker_server=192.168.1.222:22122
tracker_server=192.168.1.233:22122
#url中是否有group名称
url_have_group_name = true
#storage path的个数
store_path_count=2
#根据store_path_count的值,就要有storage0到storage(N-1)个
store_path0=/data/fdfs_storage/storage0
store_path1=/data/fdfs_storage/storage1
启动 nginx
> /data/nginx/sbin/nginx
上传一个文件
> echo
"12345678"
>> /data/1.txt
> fdfs_upload_file /etc/fdfs/client.conf /data/1.txt
然后通过 nginx 访问该文件
http://192.168.1.222/group1/M00/00/00/wKgB6Vi3fGiAMsO2AAAAB2BGSN8003.txt
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于