1. 环境准备
1.1. 使用的系统软件
1.2. 编译环境
1.2.1. 编译命令(实际安装了git、gcc、gcc-c++、pcre、pcre-devel、zlib、zlib-devel、openssl-devel、wget、vim等工具和依赖模块)
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
1.2.2. 运行截图
1.3. 磁盘目录
1.3.1. 目录说明
说明 |
位置 |
所有安装包 |
/usr/local/fastdfs/ |
数据存储位置 |
/usr/local/fastdfs/storage01/ |
这里为了方便把日志、数据存储都放到了storage01 |
1.3.2. 创建目录和切换目录
mkdir /usr/local/fastdfs #创建所有安装包目录
mkdir /usr/local/fastdfs/storage01 #创建数据存储目录
cd /usr/local/fastdfs #切换到安装目录准备下载安装包
2. 安装libfatscommon
2.1. 安装命令
git clone https://github.com/happyfish100/libfastcommon.git --depth 1
cd libfastcommon/ #下载libfastcommon模块
./make.sh && ./make.sh install #编译安装
2.2. 安装截图
2.3. 安装完成后/usr/lib64和/usr/lib目录下都多了一个libfastcommon.so
3. 安装FastDFS
3.1. 安装命令
cd ../ #返回上一级目录
git clone https://github.com/happyfish100/fastdfs.git --depth 1
cd fastdfs/ #下载FastDFS本体
./make.sh && ./make.sh install #编译安装
3.2. 安装截图
3.3. 安装完成在etc目录下多了一个fdfs目录
3.4. 配置文件准备
#tracker跟踪服务器的配置文件, 拷贝tracker.conf.sample到/etc/fdfs目录下, 并重命名为tracker.conf
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
#storage储存服务器的配置文件, 拷贝storage.conf.sample到/etc/fdfs目录下, 并重命名为storage.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #client配置文件
cp /usr/local/fastdfs/fastdfs/conf/http.conf /etc/fdfs/ #供nginx访问使用
cp /usr/local/fastdfs/fastdfs/conf/mime.types /etc/fdfs/ #供nginx访问使用
3.5. 配置文件准备完成
4. 安装fastdfs-nginx-module
4.1. 安装fastdfs-nginx-module命令
#返回上一级目录
cd ../
#下载fastdfs-nginx-module模块
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
#拷贝mod_fastdfs.conf到/etc/fdfs目录下
cp /usr/local/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
4.2. 安装截图
5. 安装nginx
5.1. 安装nginx命令
wget http://nginx.org/download/nginx-1.15.4.tar.gz #下载nginx压缩包
tar -zxvf nginx-1.15.4.tar.gz #解压
cd nginx-1.15.4/ #切换到nginx-1.15.4目录
#添加fastdfs-nginx-module模块
./configure --add-module=/usr/local/fastdfs/fastdfs-nginx-module/src/
#编译安装
make && make install
5.2. 添加fastdfs-nginx-module模块截图
5.3. 编译安装截图
5.4. 安装完nginx后, /usr/local目录下多了一个nginx目录
6. tracker配置
6.1. 配置参数
#tracker服务器ip为 192.168.25.135
#编辑tracker.conf文件
vim /etc/fdfs/tracker.conf
#需要修改的内容如下
port=22122 #tracker服务器端口(默认22122, 一般不修改)
base_path=/usr/local/fastdfs/storage01 #存储日志和数据的根目录
6.2. 启动tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf #启动tracker服务
/etc/init.d/fdfs_trackerd start #启动tracker服务
/etc/init.d/fdfs_trackerd restart #重启动tracker服务
/etc/init.d/fdfs_trackerd stop #停止tracker服务
chkconfig fdfs_trackerd on #自启动tracker服务
7. storage配置
7.1. 配置参数
#编辑storage.conf文件
vim /etc/fdfs/storage.conf
#需要修改的内容如下
group_name=group1 #卷/组名
port=23000 #storage服务端口(默认23000,一般不修改)
base_path=/usr/local/fastdfs/storage01 #数据和日志文件存储根目录
store_path0=/usr/local/fastdfs/storage01 #第一个存储目录
tracker_server=192.168.25.135:22122 #tracker服务器IP和端口
http.server_port=8888 #http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
7.2. 启动storage节点
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf #启动storage服务
/etc/init.d/fdfs_storaged start #启动storage服务
/etc/init.d/fdfs_storaged restart #重动storage服务
/etc/init.d/fdfs_storaged stop #停止动storage服务
chkconfig fdfs_storaged on #自启动storage服务
8. client测试
8.1. 配置参数
vim /etc/fdfs/client.conf #编辑client.conf文件
#需要修改的内容如下
base_path=/usr/local/fastdfs/storage01 #数据和日志文件存储根目录
tracker_server=192.168.25.135:22122 #tracker服务器IP和端口
#保存后测试,返回ID表示成功 如:group1/M00/00/00/xx.tar.gz
fdfs_upload_file /etc/fdfs/client.conf /usr/local/fastdfs/nginx-1.15.4.tar.gz
8.2. 上传截图
8.3. 没有nginx无法http下载
9. 配置nginx访问
9.1. 配置mod_fastdfs.conf
#编辑mod_fastdfs.conf文件
vim /etc/fdfs/mod_fastdfs.conf
#需要修改的内容如下
group_name=group1 #卷/组名
tracker_server=192.168.25.135:22122 #tracker服务器IP和端口
url_have_group_name=true #url中需要包含组名
store_path0=/usr/local/fastdfs/storage01 #第一个存储目录
9.2. 配置nginx.config(配置nginx需要重启nginx, 使用reload命令无效)
#编辑nginx.conf文件
vim /usr/local/nginx/conf/nginx.conf
#添加如下配置
server {
listen 8888; #该端口为storage.conf中的http.server_port相同
server_name localhost; #当前主机的名字
location ~/group[1-9]/ { #拦截带有group1~group9的请求
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
9.3. 启动nginx
/usr/local/nginx/sbin/nginx #启动nginx
/usr/local/nginx/sbin/nginx -s reload #重启nginx
/usr/local/nginx/sbin/nginx -s stop #停止nginx
#测试下载,用外部浏览器访问刚才已传过的nginx安装包,引用返回的ID
http://192.168.25.135:8888/group1/M00/00/00/wKgZh17l5maAGr8HAA-itrfn0m4.tar.gz
#弹出下载单机部署全部跑通
9.4. 启动nginx后, 我们的nginx有2个进程, master和worker
9.5. 配置80端口可访问
upstream fdfs_group1 { #group1的配置
server 192.168.25.135:8888 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.25.137:8888 weight=1 max_fails=2 fail_timeout=30s;
}
upstream fdfs_group2 { #group2的配置
server 192.168.25.138:8888 weight=1 max_fails=2 fail_timeout=30s;
}
server {
listen 80;
server_name localhost;
location /group1/ { #80端口代理访问group1
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_pass http://fdfs_group1;
expires 30d;
}
location /group2/ { #80端口代理访问group2
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_pass http://fdfs_group2;
expires 30d;
}
#关闭favicon.ico的log
location = /favicon.ico {
log_not_found off;
access_log off;
}
}
9.6. 测试下载