icymon Pages

Ubuntu20.04安装fastdfs

安装编译环境

sudo apt install build-essential
sudo apt install -y gcc automake autoconf libtool make

centos 安装编译环境

# 后面安装nginx也会用到
yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl-devel libevent make automake autoconf libtool wget vim git

下载源码包

wget -O fastdfs_V6.12.2.tar.gz https://github.com/happyfish100/fastdfs/archive/refs/tags/V6.12.2.tar.gz
wget -O fastdfs-nginx-module_V1.24.tar.gz https://github.com/happyfish100/fastdfs-nginx-module/archive/refs/tags/V1.24.tar.gz
wget -O libfastcommon_V1.0.76.tar.gz https://github.com/happyfish100/libfastcommon/archive/refs/tags/V1.0.76.tar.gz
wget -O libserverframe_V1.2.6.tar.gz https://github.com/happyfish100/libserverframe/archive/refs/tags/V1.2.6.tar.gz
wget -O nginx-1.26.3.tar.gz https://nginx.org/download/nginx-1.26.3.tar.gz

编译安装

解压源码包

tar -zxvf libfastcommon-1.0.66.tar.gz
tar -zxvf fastdfs-6.9.4.tar.gz
tar -zxvf fastdfs-nginx-module-1.23.tar.gz
tar -zxvf nginx-1.24.0.tar.gz
tar -zxvf libserverframe-1.1.25.tar.gz

安装libfastcommon

cd libfastcommon-1.0.66/
sudo ./make.sh
sudo ./make.sh install

安装libserverframe

cd libserverframe-1.1.25/
sudo ./make.sh
sudo ./make.sh install

安装fastdfs

cd fastdfs-6.9.4/
sudo ./make.sh
sudo ./make.sh install

配置并启动Tracker、Storage服务

创建目录

$ mkdir /home/jingtai/fdfs/tracker -p
$ mkdir /home/jingtai/fdfs/storage -p
$ mkdir /home/jingtai/fdfs/client -p

配置并启动Tracker服务

vi tracker.conf
# 修改base_path属性,自定义tracker的数据和日志的输出目录
base_path=/home/jingtai/fdfs/tracker
# 保存并退出
:wq
# 配置防火墙,开放Tracker服务占用的22122端口
sudo ufw allow 22l22/tcp
# 启动Tracker服务
fdfs_trackerd /etc/fdfs/tracker.conf start

配置并启动Storage服务

# 修改storage.conf文件
vi storage.conf
# 修改base_path属性,自定义tracker的数据和日志的输出目录
base_path=/home/jingtai/fdfs/storage
# 修改store_path属性,如果不配置就是跟base_path一样,我这里就直接跟配置base_path一样的路径了
store_path0=/home/jingtai/fdfs/storage
# 修改tracker_server地址,tracker服务所在的服务器的IP地址,有域名的也可以改成 域名:22122,如果有多个tracker服务,可以配置多行,官方默认给我配了两行,如果只有一个tracker服务,可以注释掉一行。
tracker_server = 192.168.0.190:22122
# 保存并退出
:wq
# 配置防火墙,开放Storage服务占用的23000端口
sudo ufw allow 23000/tcp
# 启动Storage服务
fdfs_storaged /etc/fdfs/storage.conf start

配置client

# 修改client.conf文件
vim client.conf
# 修改base_path属性,自定义client的数据和日志的输出目录
base_path=/home/jingtai/fdfs/client
# 修改tracker_server地址,tracker服务所在的服务器的IP地址,有域名的也可以改成 域名:22122,如果有多个tracker服务,可以配置多行,官方默认给我配了两行,如果只有一个tracker服务,可以注释掉一行。
tracker_server = 192.168.0.190:22122
# 保存并退出
:wq

测试上传文件

整合nginx

复制和修改配置文件

复制并修改fastdfs-nginx-module文件

sudo cp /home/jingtai/fastdfs_zips/fastdfs-nginx-module-1.23/src/mod_fastdfs.conf /etc/fdfs/
sudo vi /etc/fdfs/mod_fastdfs.conf
tracker_server=192.168.0.190:22122
url_have_group_name = true
store_path0=/home/jingtai/fdfs/storage

复制fastdfs配置文件

cp /home/jingtai/fastdfs_zips/fastdfs-6.9.4/conf/http.conf /etc/fdfs/
cp /home/jingtai/fastdfs_zips/fastdfs-6.9.4/conf/mime.types /etc/fdfs/

安装Nginx

多节点情况下,nginx 节点需要部署在storage节点上才能正常访问文件

安装编译工具

centos环境:yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl-devel

sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev 

编译安装

# 切换至 nginx 的解压目录
cd /usr/local/src/nginx-1.18.0
# 创建 nginx 的安装目录
mkdir -p /home/jingtai/nginx
# 添加 fastdfs-nginx-module 模块,指定 nginx 的安装路径
sudo ./configure --add-module=/home/jingtai/fastdfs_zips/fastdfs-nginx-module-1.23/src --prefix=/home/jingtai/nginx
# 编译并安装
sudo make && make install

配置Nginx

启动 Nginx,命令为:/home/jingtai/nginx/sbin/nginx

重载:/home/jingtai/nginx/sbin/nginx -s reload

此时客户端上传图片以后得到文件名为:group1/M00/00/00/wKgKZl9tkTCAJAanAADhaCZ_RF0495.jpg 浏览器访问:http://192.168.0.190/group1/M00/00/00/wKgKZl9tkTCAJAanAADhaCZ_RF0495.jpg

多节点配置(参考)

参考

异常处理关键字参考(按照上述版本步骤不会出现如下异常)

ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

非80端口nginx访问404问题(这里是个大坑,想破头)

在nginx中增加

user root root;