Linux下的安装部署fastdfs,需要分别安装fastdfs-nginx-module、fastdfs、nginx、libfastcommon。
首先需要装备安装包以及一个干净的linux服务器,安装包可以自己下载 https://sourceforge.net/projects/fastdfs/files/ 。
也可以点击下面的百度云盘获取:
链接:https://pan.baidu.com/s/1qrVrI19TrEcjTjawk79-eg
提取码:upcj
一、准备工作
1,安装gcc(编译时需要)
yum install -y gcc gcc-c++
2,安装libevent(运行时需要)
yum -y install libevent
3,安装创建目录,上传所有文件
mkdir -p /fileservice/fast
cd /fileservice/fast
二、安装libfastcommon
1、进入fast目录:
cd /fileservice/fast
2、解压文件:
tar -zxvf libfastcommon-1.0.35.tar.gz
3、进入libfast文件目录:
cd libfastcommon-1.0.35
4、执行编译:
./make.sh
5、安装:
./make.sh install
三、安装fastDFS
1、安装相关依赖库(依次执行下面的命令):
yum install perl
yum install pcre
yum install pcre-devel
yum install zlib
yum install zlib-devel
yum install openssl
yum install openssl-devel
2、进入fast目录:
cd /fileservice/fast
3、解压文件:
tar -zxvf fastdfs-5.11.tar.gz
4、进入解压后的目录:
cd fastdfs-5.11
5、执行编译:
./make.sh
6、安装:
./make.sh install
7、查看tracker和storage的可执行脚本(后面有用):
ll /etc/init.d/ | grep fdfs
8、准备配置文件 默认在/etc/fdfs/下面:
cd /etc/fdfs/
9、先把配置文件名中的sample去了。[可以复制一份]:
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp storage_ids.conf.sample storage_ids.conf
cp tracker.conf.sample tracker.conf
10、然后修改tracker的存放数据和日志的目录:
mkdir -p /home/dongl/fastdfs/tracker
11、配置和启动tracker,切换目录到: /etc/fdfs/ 目录下:
cd /etc/fdfs/
12、修改tracker.conf
vi tracker.conf
base_path=/home/yuqing/fastdfs 改为: base_path=/home/dongl/fastdfs/tracker
13、启动tracker,运行如下命令:
service fdfs_trackerd start
注意:在/home/dongl/fastdfs/tracker 目录下生成两个目录, 一个是数据,一个是日志;
cd /home/dongl/fastdfs/tracker
14、 配置和启动storage,切换目录到: /etc/fdfs/ 目录下:
cd /etc/fdfs/
15、修改storage.conf:
vi storage.conf
group_name=group1 #配置组名
base_path=/home/yuqing/fastdfs 改为: base_path=/home/dongl/fastdfs/storage
#store存放文件的位置(store_path)
store_path0=/home/yuqing/fastdfs 改为: store_path0=/home/dongl/fastdfs/storage
如果有多个挂载磁盘则定义多个store_path,如下
store_path1=.....
store_path2=......
配置tracker服务器:IP
tracker_server=xx.xx.xx.xx:22122
如果有多个则配置多个tracker
16、创建/home/dongl/fastdfs/storage 目录
mkdir -p /home/dongl/fastdfs/storage
17、启动storage, 运行命令如下:
service fdfs_storaged start
18、启动完成后进入 /home/dongl/fastdfs/storage/data 目录下,显示目录如下:
cd /home/dongl/fastdfs/storage/data
19、切换目录到 /etc/fdfs/ 目录下
cd /etc/fdfs/
20、修改client.conf :
vi client.conf
修改基本路径和tracker_server如下:
/home/dongl/fastdfs/storage
注意:若tracker有多个,可以配置多个,如下:
#tracker_server=......
#tracker_server=......
21、下面简单测试一下:
拷贝一张图片dl.jpg到服务器上的 /root/目录下
运行如下(运行测试程序,读取/etc/fdfs/client.conf 文件,上传/root/目录下的dl.jpg文件)
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/dl.jpg
以上图中的文件地址:http://192.168.10.41/group1/M00/00/00/wKgKKWDmWeCAEDp2AANnVZ-mwTQ449.jpg
对应storage服务器上的/home/dongl/fastdfs/storage/data/00/00/wKgKKWDmWeCAEDp2AANnVZ-mwTQ449.jpg 文件;
到这里fastDFS就已经安装完了,但是还没有与nginx整合,无法通过http下载。
四、FastDFS 和nginx整合
在每个tracker上安装nginx,的主要目的是做负载均衡及实现高可用。如果只有一台tracker可以不配置nginx。
一个tracker对应多个storage,通过nginx对storage负载均衡。
1、在storage 上安装nginx------进入 fileservice/fast/ :
cd /fileservice/fast/
2、解压fastdfs-nginx-module-1.20.tar.gz
tar -zxvf fastdfs-nginx-module-1.20.tar.gz
3、切换目录到: fastdfs-nginx-module-1.20/src 目录下:
cd fastdfs-nginx-module-1.20/src
4、修改config文件,将文件中的所有 /usr/local/ 路径改为 /usr/:
修改之后ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
vi config
5、将fastdfs-nginx-module/src下的mod_fastdfs.conf拷贝至/etc/fdfs/下:
cp mod_fastdfs.conf /etc/fdfs/
6、并修改 /etc/fdfs/mod_fastdfs.conf 的内容:
vi /etc/fdfs/mod_fastdfs.conf
tracker_server=192.168.xx.xx:22122
tracker_server=192.168.172.20:22122 #(多个tracker配置多行)
url_have_group_name=true #url中包含group名称
store_path0=/home/fdfs_storage #指定文件存储路径(上面配置的store路径)
7、进入之前解压的fastdfs目录下,把http.conf、mime.conf移动至/etc/fdfs
cd /fileservice/fast/fastdfs-5.11/conf/
cp http.conf mime.types /etc/fdfs/
8、Nginx的安装------进入/fileservice/fast/:
cd /fileservice/fast/
9、解压 nginx-1.15.2.tar.gz
tar -zxvf nginx-1.15.2.tar.gz
10、进入nginx解压的目录下:
cd nginx-1.15.2/
11、加入模块命令配置:
./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/fileservice/fast/fastdfs-nginx-module-1.20/src
12、编译并安装:
make && make install
13、修改nginx配置:
cd /opt/nginx/conf
vi nginx.conf
14、启动nginx:
cd /usr/bin/
./nginx
15、在浏览器中访问上传到fastDFS的图片:
因为Centos系统有防火墙,需要先关闭掉,才可以在浏览器中访问;
CentOS 7.0默认使用的是firewall作为防火墙;若没有启用iptables 作为防火墙,则使用以下方式关闭防火墙:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
若已经启用iptables作为防火墙,则使用以下方式关闭:
service iptables stop #临时关闭防火墙
chkconfig iptables off #永久关闭防火墙
在谷歌浏览器中或者直接用postman访问刚才上传的图片:
http://192.168.10.41/group1/M00/00/00/wKgKKWDmWeCAEDp2AANnVZ-mwTQ449.jpg