一、基础环境准备
1、所需软件
名称 | 说明 |
---|---|
libfastcommon | fastdfs分离出的一些公用函数包 |
fastdfs | fastdas软件包 |
fastdfs-nginx-module | fastdfst和nginx的关联模块 |
nginx | nginxl软件包 |
2、编辑环境
安装一些基础的支持环境
yum install git gccc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
3、磁盘目录
说明 | 位置 |
---|---|
所有安装包的位置 | /data/fastdfs-soft 将所准备的软件包上传至该目录 |
数据存储位置 | /data/fastdfs |
4、相关fastdfs软件安装
对于服务器如果服务器有外网,可以使用git拉取源码下来进行编绎安装。如果没有外网环境,则可以通过拷贝软件包至服务器,然后解压后进行编辑安装
4.1 安装libfastcommon
方式一:通过git从网上拉取源码
git clone https://github.com/happyfish100/libfastcommon.git --depth 1
方式二:通过有网环境下载软件包 然后拷贝至服务器,解压 (我这里是通过这种方式上传的,zip包 使用unzip libfastcommon-1.0.43.zip 命令进行解压)
无论是第一种方式 还是第二种方式 获取到的都是源码软件包,当一切都准备好后,进入到libfastcommon目录下 执行下以命令进行编绎及安装
# 我这里是自己上传的包 是有版本号的 大家安装时 请根据自己的实际情况做路径调整
cd libfastcommon-1.0.43
./make.sh && ./make.sh install
4.2 安装fastdfs
同样安装fastdfs也可以通过git方式获取源码
git clone https://github.com/happyfish100/fastdfs.git --depth 1
也可以拷贝已下载的源码至服务器(我采用的就是拷贝的方式),然后进入到fastdfs目录 进行编绎安装
# 我这里是自己上传的包 是有版本号的 大家安装时 请根据自己的实际情况做路径调整
cd fastdfs-6.06
./make.sh && ./make.sh install
为了供nginx访问使用 还需要将http.conf 和mime.types文件拷贝至etc/fdfs目录下
# 我这里是自己上传的包 是有版本号的 大家做配置时 请根据自己的实际情况做路径调整
cp /data/fastdfs-soft/fastdfs-6.06/conf/http.conf /etc/fdfs/
cp /data/fastdfs-soft/fastdfs-6.06/conf/mime.types /etc/fdfs/
4.3 fastdfs–nginx-module安装
源码获取同样可以通过git 或者拷贝上传方式
git方式
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
获取源码后 将其中的mod_fastdfs.conf 配置拷贝至/etc/fdfs目录下
# 我这里是自己上传的包 是有版本号的 大家做配置时 请根据自己的实际情况做路径调整
cp /data/fastdfs-soft/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs
4.4 nginx安装
nginx安装包获取 可以通过wget在线下载,也可以自己手动拷贝至服务器
wget方式
wget http://nginx.org/download/nginx-1.18.0.tar.gz
软件包获取到后进行解压 安装
#解压
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
#添加上fastdfs-nginx-module模块的配置 (注意=号后面的路径 就是上一步4.3中的fastdfs-nginx-module的路径)
./configure --add-module=/data/fastdfs-soft/fastdfs-nginx-module-1.22/src/
# 编绎安装
make && make install
5、fastdfs相关部署 单机模式
5.1 域名配置 (非必须 可省略)
在 /etc/hosts 中配置i添加 例
127.0.0.1 fastdfs.com
5.2 tracker配置
# 创建目录
mkdir -p /data/fastdfs
修改tracker.conf配置
# 如果tracker.conf 文件不存在,则看看是否有tracker.conf.sample,如果有 则cp tracker.conf.sample tracker.conf一份。如果tracker.conf.sample也没有 则可以去到前面fastdfs软件目录中conf目下复制一份到/etc/fdfs目录下
vim /etc/fdfs/tracker.conf
# 修改以下内容
# tracker服务器端口(默认22122 一般不用修改)
port=22122
# 存储日志和数据的根目录
base_path=/data/fastdfs
永久关闭防火墙
systemctl disable firewalld.service
启动tracker服务
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
查看是否启动成功 通过下面的命令查看进程是否正常运行
ps -ef | grep tracker
5.3 storage配置
修改storage.conf配置
# 如果storage.conf 文件不存在,则看看是否有storage.conf.sample,如果有 则cp storage.conf.sample storage.conf一份。如果storage.conf.sample也没有 则可以去到前面fastdfs软件目录中conf目下复制一份到/etc/fdfs目录下
vim /etc/fdfs/storage.conf
# 修改以下内容
# storage服务器端口(默认23000 一般不用修改)
port=23000
# 存储日志和数据的根目录
base_path=/data/fastdfs
# storage虚拟磁盘路径,如果配了store_path0则对应的是M00,如果配置了store_path1 则是M01 以此类推
store_path0=/data/fastdfs
# tracker 服务器IP和端口 (可以是ip 也可以是域名) (如果配置的是外网ip或外网域名 则记得一定要在安全组放行)
tracker_server=fastdfs.com:22122
# http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
http.server_port=80
启动storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
5.4 client客户端测试
修改client.conf配置
vim /etc/fdfs/client.conf
#需要如下这些内容
bast_path=/data/fastdfs
# tracker服务器ip和端口 (如果配置的是外网ip或外网域名 则记得一定要在安全组放行)
tracker_server=fastdfs.com:22122
测试文件上传 上传后返回ID则表示上传成功 如:group1/M00/00/00/eSgtrGXp7K2ANDgsAAAADK8IOy0497.txt
然后我们也可以去数据目录下查看上传的文件,验证是否落盘成功
# 随便进一个目录 例
cd /data
# 创建一个测试文件
touch a.txt
echo 'hello world' > a.txt
#上传文件
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /data/a.txt
# 删除文件
/usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/eSgtrGXp7K2ANDgsAAAADK8IOy0497.txt
6、配置nginx访问
配置mod_fastdfs.conf
vim /etc/fdfs/mod_fastdfs.conf
#需修改的内容如下
# tracker服务器ip和端口
tracker_server=fastdfs.com:22122
url_have_group_name= true
store_path0=/data/fastdfs
配置nginx.conf
vim /usr/local/nginx/conf/nginx.conf
#添加如下配置 或者修改为以下配置
server {
listen 80; ## 该端口要和storage.conf中的http.server_port相同
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
}
然后启动nginx
/usr/local/nginx/sbin/nginx
通过服务ip:端口/文件的key 即可访问文件了