服务器(centos6.5)安装和配置FastDFS
一、基础
FastDFS是纯C语言实现,只支持Linux、FreeBSD等UNIX系统。
FastDFS的两个核心概念分别是:Tracker(跟踪器)、Storage(存储节点)
fastdfs 5.11版本对照:Version 5.11对应的fastdfs-nginx-module的Version 1.20
fastdfs 5.10版本对照:Version 5.10对应的fastdfs-nginx-module的Version 1.19
如果版本不对应,后期安装会报错!!!
二、目的
搭建图片,文件服务器
三、安装环境
依赖:
libfastcommon-master.zip
fastdfs-master.zip
fastdfs-nginx-module-master.zip
四 、安装
4.1安装libfastcommon:
解压:
cd /usr/local/
unzip libfastcommon-master.zip
切换目录:
cd libfastcommon-master
开始执行,安装:
./make.sh
./make.sh install
看看有没有报错,如果没有错误就可以执行软链接了。
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
4.2安装FastDFS
解压:
cd /usr/local/
unzip fastdfs-master.zip
切换目录:
cd fastdfs-master
开始执行,安装:
./make.sh
./make.sh install
成功之后查看目录:
cd /etc/fdfs/
ls
将其中三个实例文件服务去掉sample。【结尾.sample 拷贝成.conf结尾(拷贝后就可以删除.sample结尾的文件)}
mv client.conf.sample client.conf
mv storage.conf.sample storage.conf
mv tracker.conf.sample tracker.conf
4.3安装tracker:
创建tracker工作目录:
cd /home/
mkdir dfs_tracker
配置tracker:
cd /etc/fdfs
vim tracker.conf
修改如下:
1.disabled=false #默认开启
2.port=22122 #默认端口号
3.base_path=/home/dfs_tracker #刚刚创建的目录
4.http.server_port=18080 #默认端口是8080(我的是80)
保存,启动 tracker 命令如下:
service fdfs_trackerd start
检查是否启动成功,
service fdfs_trackerd status
此时创建的tracker目录。发现目录多了data和log两个目录。
cd /home/dfs_tracker/
ll
tracker开机自启:
chmod 777 /etc/rc.d/rc.local
vim /etc/rc.d/rc.local
在配置文件最后加下最后一句话即可:
service fdfs_trackerd start
如图:
保存,然后 查看tracker端口监听情况
netstat -unltp|grep fdfs
tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN 2233/fdfs_trackerd
到此22122端口监听成功。
4.4安装storage:
创建工作目录
cd /home/
mkdir dfs_storage
mkdir dfs_storage_data
修改storage.conf
vim /etc/fdfs/storage.conf
找到如下几处地方修改即可
1.disabled=false
2.group_name=group1hlwjr1 #组名,根据实际情况修改
3.port=23000 #设置storage的端口号,默认23000,同一个组的storage端口号必须一致
4.base_path=/home/dfs_storage #设置storage数据文件和日志目录
5.store_path_count=1 #存储路径个数
6.1 base_path0=/home/dfs_storage_data #实际文件存储路径
6.2 store_path0 =/home/dfs_storage_data #实际文件存储路径
[只设置6.1,后来启动storage报错,提示找不到原有路径:/home/yuqing/fastdfs 。后来发现系统自带有store_path0 = /home/yuqing/fastdfs 尝试peizhi 6.2 解决问题,故两者可能是一种配置。]
7.tracker_server=192.168.65.128:22122 #我CentOS6.5的ip地址
8.http.server_port=18080 #设置 http 端口号
启动storage
service fdfs_storaged start
检查验证:
service fdfs_storaged status
同样设置开机启动
修改rc.local
vim /etc/rc.d/rc.local
添加:
service fdfs_storaged start
同样查看服务是否启动
netstat -unltp | grep fdfs
确认一下,storage是否注册到了tracker中:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
成功截图:
修改客户端配置:
vim /etc/fdfs/client.conf
修改如下:
1.base_path=/home/dfs_tracker #tracker服务器文件路径
2.tracker_server=106.12.65.128:22122 #tracker服务器IP地址和端口号
3.http.tracker_server_port=18080 # tracker 服务器的 http端口号,必须和tracker的设置对应起来
测试:
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/1.jpg
截图(测试所用图片):
PS:
如果先执行上面命令会报错:
如果先手动把文件上传到/root,再执行,就不会报错:
原因:
不确定是不是因为我在安装nginx的时候,就已经搭建文件服务器了。
成功之后会返回图片的路径:
group1/M00/00/00/name.png
查看图片是否成功:
4.5 通过http访问到图片
但是现在还是不能通过http访问到图片。
解压fastdfs-nginx-module:
cd /usr/local/
tar -zxvf nginx-1.12.0.tar.gz
unzip fastdfs-nginx-module-master.zip
添加模块:
cd /u01/app/sgapp/java/nginx/nginx-1.14.2
./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module-master/src
开始安装:
make
make install
配置storage nginx:
修改nginx.conf:
cd /usr/local/nginx/conf
vim nginx.conf
修改如下:
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location /group1/M00 {
root /home/dfs_storage_data/data;
ngx_fastdfs_module;
}
然后进入FastDFS安装时的解压过的目录,将http.conf和mime.types拷贝到/etc/fdfs目录下:
cd /usr/local/fastdfs-master/conf/
cp http.conf /etc/fdfs/
cp mime.types /etc/fdfs/
另外还需要把fastdfs-nginx-module安装目录中src目录下mod_fastdfs.conf也拷贝到/etc/fdfs目录下:
cp /usr/local/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
修改:
vim /etc/fdfs/mod_fastdfs.conf
修改如下:
base_path=/home/dfs_storage #保存日志目录
tracker_server=106.12.120.191:22122 #tracker服务器的IP地址以及端口号
storage_server_port=23000 #storage服务器的端口号
url_have_group_name = true #文件 url 中是否有 group 名
store_path0=/home/dfs_storage_data #存储路径
group_count = 1
同时设置group:
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/home/dfs_storage_data
创建M00至storage存储目录的符号连接:
ln -s /home/dfs_storage_data/data /home/dfs_storage_data/dataM00
启动nginx:
/usr/local/nginx/sbin/nginx
成功截图:
情况一:
情况二: