首先安装gcc依赖
yum install gcc-c++
FastDFS依赖libevent库
yum -y install libevent
上传libfastcommonV1.0.7到虚拟机上一般上传到/usr/local下,安装libfastcommon
tar -zxvf libfastcommonV1.0.7.tar.gz
上方可合并为一句
yum install -y gcc pcre pcre-devel openssl openssl-devel gd gd-devel
进入解压后的目录
./make.sh
./make.sh install
注意:libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程
序引用usr/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/lib下。
要拷贝的文件如下:
libfastcommon.so
将FastDFS_v5.05.tar.gz拷贝至/usr/local/下
tar -zxvf FastDFS_v5.05.tar.gz
进入解压后的目录
./make.sh #编译
./make.sh install 安装
安装成功后进入/etc/fdfs目录
cp tracker.conf.sample tracker.conf
将3份sample文件去掉sample后缀如上方命令
修改tracker.conf ,没有目录的用mkdir创建对应目录,这里的目录名称需要和后面保持一致
vi tracker.conf
base_path=/home/fastdfs
http.server_port=80
启动tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
FastDFS–storage安装
修改storage.conf
group_name=group1
base_path=/home/fastdfs
store_path0=/home/fastdfs/fdfs_storage
#如果有多个挂载磁盘则定义多个store_path,如下
#store_path1=.....
#store_path2=......
tracker_server=192.168.101.3:22122 #配置 tracker服务器:IP
#如果有多个则配置多个tracker
tracker_server=192.168.101.4:22122
#配置http端口
http.server_port=80
启动storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
测试是否能用
修改/etc/fdfs/client.conf
base_path=/home/fastdfs
tracker_server=192.168.101.3:22122
#tracker_server=192.168.101.4:22122有多个tracker则这样配置
使用格式
/usr/bin/fdfs_test 客户端配置文件地址 upload 上传文件
在Storage上安装nginx
在storage server上安装nginx的目的是对外通过http访问storage server 上的文
件。使用 nginx 的模块 FastDFS-nginx-module 的作用是通过 http 方式访问 storage 中
的文件,当storage本机没有要找的文件时向源storage主机代理请求文件。
将 FastDFS-nginx-module_v1.16.tar.gz 传至 fastDFS 的 storage 服务器的
/usr/local/下,执行如下命令:
cd /usr/local
tar -zxvf FastDFS-nginx-module_v1.16.tar.gz
cd FastDFS-nginx-module/src
修改config文件将/usr/local/路径改为/usr/
将FastDFS-nginx-module/src下的mod_FastDFS.conf拷贝至/etc/fdfs/下
cp mod_FastDFS.conf /etc/fdfs/
并修改mod_FastDFS.conf的内容:
vi /etc/fdfs/mod_FastDFS.conf
base_path=/home/FastDFS
tracker_server=192.168.101.3:22122
tracker_server=192.168.101.4:22122
url_have_group_name=true #url中包含group名称
store_path0=/home/fastdfs/fdfs_storage #指定文件存储路径
#如果有多个
#将libfdfsclient.so拷贝至/usr/lib下
cp /usr/lib64/libfdfsclient.so /usr/lib/
创建nginx/client目录
mkdir -p /var/temp/nginx/client
将nginx-1.8.0.tar.gz拷贝到/usr/local下
解压nginx-1.8.0.tar.gz
进入nginx-1.8.0目录,执行如下配置命令:
最下边部分表示添加 FastDFS-nginx-module模块
./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi --add-module=/usr/local/FastDFS-nginx-module/src
make && make install
新建一个nginx配置文件nginx-fdfs.conf.
添加虚拟主机:
server {
listen 80;
server_name 192.168.101.65;
location /group1/M00/{
root /home/FastDFS/fdfs_storage/data;
ngx_FastDFS_module;
}
}
说明:
server_name指定本机ip
location /group1/M00/:group1为nginx 服务FastDFS的分组名称,M00是FastDFS
自动生成编号,对应 store_path0=/home/FastDFS/fdfs_storage,如果 FastDFS 定义
store_path1,这里就是M01
通过java客户端上传文件,使用浏览器http访问文件,这里访问上传图片测试的文件:
访问storage:
http://192.168.101.5/group1/M00/00/00/wKhlBVVY2M-AM_9DAAAT7-0xdqM485_big.png
ip地址改为192.168.101.6也可以访问到文件,因为同一个分组的storage文件互相同步。
访问tracker:
http://192.168.101.3/group1/M00/00/00/wKhlBVVY2M-AM_9DAAAT7-0xdqM485_big.png
ip地址改为192.168.101.4 也可以访问到文件。
使用域名访问 (推荐):
nginx对外由vip提供服务,使用域名访问如下:
比如vip对应的域名为img.test.com:
http://img.test.com/group1/M00/00/00/wKhlBVVY2M-AM_9DAAAT7-0xdqM485_big.png