前言
环境:Centos7.9 、FastDFS_v5.07.tar.gz
前两篇我们讲了FastDFS的安装与3个配置文件,现在我们就来启动一下FastDFS,并安装nginx,结合nginx来访问下载Storage server里的图片数据等。
Tracker server和Storage server的启动
现在我们就来启动Tracker server和Storage server,首先先启动Tracker ,然后再启动Storage ,因为Storage 启动后会去连接
Tracker ,在Storage 的配置文件里写了Tracker 的链接IP和端口。
cd /etc/init.d/
./fdfs_trackerd start #启动Tracker
lsof -i:22122 #检查Tracker 是否启动成功
./fdfs_storaged start #启动Storage
lsof -i:23000 #检查Storage是否启动成功
fdfs_monitor /etc/fdfs/storage.conf #使用fdfs_monitor监视器查看Storage和Tracker 是否在通信
Linux本地上传测试文件
启动好Tracker server和Storage server之后,我们就来使用追踪服务器的客户端来上传文件,如下,使用 fdfs_upload_file来上传一张图片进行测试:
fdfs_upload_file /etc/fdfs/client.conf test.png
ll /FastDFS/Storage_Data/store_file/data/00/00/ #检查,这个路径是我自己配置的路径
格式讲解
在上面我们进行测试上传的时候,返回了一串东西,那么这串东西表示上面含义呢?介绍如下:
G1/M00/00/00/wKh2gWD8jfmAKVnjAAL3yUqgn0s230.png
解释如下:
组名:文件上传后所在storage组名称,这里G1就是组名;
虚拟磁盘路径:storage配置的虚拟路径,与storage.conf配置文件中参数store_path*对应,如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推;
数据两级目录:storage服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件;
文件名:ifle_id,与文件上传时不同,是因为存储服务器根据特定信息生成文件名,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。
Linux本地下载测试文件
使用客户端命令fdfs_download_file 对刚才上传的文件进行下载,如下:
fdfs_download_file /etc/fdfs/client.conf G1/M00/00/00/wKh2gWD8jfmAKVnjAAL3yUqgn0s230.png
ll wKh* #已经下载成功了
-rw-r--r--. 1 root root 194505 Jul 24 19:23 wKh2gWD8jfmAKVnjAAL3yUqgn0s230.png
安装Nginx用于访问Storage server
总在Linux本地进行上传下载也不是办法,毕竟用户都是使用浏览器进行上传文件和下载文件的,那么我们就来安装Nginx,让用户从浏览器访问Storage server进行上传下载文件数据等,Nginx只需要安装在Storage server端即可。
cd /FastDFS/Install_packages/
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /FastDFS/ #先解压这个fastdfs-nginx-module模块包
cd fastdfs-nginx-module
more INSTALL #查看安装文档得知在编译nginx时需要加入这个模块扩展来让Nginx支持fdfs
useradd -s /sbin/nologin -M nginx #创建Nginx用户
yum -y install make zlib* pcre* gcc gcc-c++ openssl* #安装Nginx的依赖包
tar -zxvf nginx-1.18.0.tar.gz -C ./ #解压Nginx压缩包到当前目录
chown -R nginx.nginx nginx-1.18.0/ #目录授权给nginx用户管理
cd nginx-1.18.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --add-module=/FastDFS/fastdfs-nginx-module/src
make
make install
#添加环境变量
echo 'PATH=/usr/local/nginx/sbin/:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile
修改Nginx的配置文件nginx.conf
安装好了nginx了,也在安装时指定nginx支持fdfs的模块了,现在我们来修改nginx的配置文件:
cd /usr/local/nginx/conf/
vim nginx.conf
在server处添加一下几行:
location /G1/M00 { #表示访问/G1/M00跳转到/FastDFS/Storage_Data/store_file/data
alias /FastDFS/Storage_Data/store_file/data;
ngx_fastdfs_module;
}
cp /FastDFS/FastDFS/conf/http.conf /etc/fdfs/ #复制源码包里面的http.conf到/etc/fdfs/目录下
cp /FastDFS/FastDFS/conf/mime.types /etc/fdfs/ ##复制源码包里面的mime.types到/etc/fdfs/目录下
/FastDFS/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/ #复制mod_fastdfs.conf到/etc/fdfs/目录下
#mod_fastdfs.conf是fastdfs-nginx-module模块的配置文件,我们需要修改该配置文件
vim /etc/fdfs/mod_fastdfs.conf #修改mod_fastdfs.conf配置文件,主要修改下面几个参数:
base_path=/FastDFS/Mod_fastdfs_nginx #配置存储log files的目录
tracker_server=nginx:22122 #treacker的IP端口,这里的IP也可以写成主机名
storage_server_port=23000 #storage的端口
group_name=G1 #组名
# if the url / uri including the group name
# set to false when uri like /M00/00/00/xxx
# set to true when uri like ${group_name}/M00/00/00/xxx, such as group1/M00/xxx
# default value is false
url_have_group_name = true #这里我改为true,因为nginx的写法是/G1/M00 ,等下网页访问我也会写上组名
store_path0=/FastDFS/Storage_Data/store_file #storage的数据文件存储路径
nginx -t #测试配置文件
nginx #启动nginx
netstat -lntp|grep nginx
网页访问nginx检测访问图片
nginx搭建好了,我们来访问一下看是否真正将fdfs和nginx整合起来了,下面来访问fdfs中我们之前已经上传的照片,测试如下:
网页输入:http://192.168.118.129/G1/M00/00/00/wKh2gWD8jfmAKVnjAAL3yUqgn0s230.png
,已经能支持访问到fdfs里的图片了,测试成功。