先贴一波原理图片
所有需要填写IP的 地方全部写公网IP
一、 FastDFS tracker部署
1.上传FastDFS_v5.01.tar.gz至服务器/usr/local/src目录下;
2.依次执行以下命令
cd /usr/local/src
tar xf FastDFS_v5.01.tar.gz
cd FastDFS
./make.sh
./make.sh install
报如下错误:
./make.sh: line 180: perl: command not found
解决
yum -y install perl
./make.sh: line 14: gcc: command not found
yum -y install make cmake gcc gcc-c++
3. 创建fastdfs账号、管理FastDFS
useradd fastdfs -M -s /sbin/nologin
配置Tracker(Tracker上配置)
1、创建tracker数据以及日志存放记录
mkdir -p /data/fastdfs/tracker
2、修改FastDFS配置文件 tracker.conf
vi /etc/fdfs/tracker.conf
需要修改的内容如下:
base_path=/data/fastdfs/tracker
max_connections=1024
work_threads=8 //通常为CPU核数
store_lookup=0 //0代表轮询方式
store_server=0
store_path=0
download_server=0
reserved_storage_space=4G
run_by_group=fastdfs
run_by_user=fastdfs
rotate_error_log=true
4.启动tracter
/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
判断是否启动:
ps -ef|grep fdfs_tracker
二、 FastDFS storage部署
1.上传FastDFS_v5.01.tar.gz和fastdfs-nginx-module_v1.15.tar.gz至服务器/usr/local/src目录下;
注意:
以下所有配置IP处均为服务器内网IP可通过ifconfig查看 IP
所有有关Nginx的操作全部切换到nginx的解压目录操作
2先安装 Nginx
mkdir /usr/local/software
cd /usr/local/software
wget http://nginx.org/download/nginx-1.9.15.tar.gz
tar -zxvf nginx-1.9.15.tar.gz
mv nginx-1.9.15 nginx
yum -y install pcre-devel openssl openssl-devel
yum -y install make cmake gcc gcc-c++
cd /usr/local/software/nginx
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --pid-
path=/usr/local/nginx/conf/nginx.pid --with-http_ssl_module --with-
http_stub_status_module
make
make install
测试配置是否正确
/usr/local/nginx/sbin/nginx -t
启动nginx
/usr/local/nginx/sbin/nginx
安装fastdfs-nginx-module模块(只在storage服务器安装)
cd /usr/local/src
tar -zxvf fastdfs-nginx-module_v1.15.tar.gz
cd /usr/local/software/nginx
编译安装nginx
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --add-module=/usr/local/src/fastdfs-nginx-module/src
make
make install
3.依次执行以下命令
cd /usr/local/src
tar xf FastDFS_v5.01.tar.gz
cd FastDFS
./make.sh(报错参照 tracker红色报错解决办法,最好是所有的安装包都安装)
./make.sh install
3. 创建fastdfs账号、管理FastDFS
useradd fastdfs -M -s /sbin/nologin
4、修改Nginx的配置文件(如果nginx.pid启动报错就删掉,重启Nginx,再次运行)
vi /usr/local/nginx/conf/nginx.conf
修改的内容如下:
user www www;
worker_processes 8;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events {
use epoll;
worker_connections 51200;
}
http {
include mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name localhost;
location /g1/M00 {
root /data/fastdfs/storage/data;
ngx_fastdfs_module;
}
}
}
配置storage
1、创建storage数据以及日志存放记录
mkdir -p /data/fastdfs/storage
2、修改storage.conf文件
vi /etc/fdfs/storage.conf
修改的内容如下:
group_name=g1
base_path=/data/fastdfs
max_connections=1024
work_threads=8
store_path_count=1
store_path0=/data/fastdfs/storage
tracker_server=IP:22122
run_by_group=fastdfs
run_by_user=fastdfs
file_distribute_path_mode=1
rotate_error_log=true
3、把nginx 模块配置文件拷贝到“/etc/fdfs”里,并修改
cp/usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
vi /etc/fdfs/mod_fastdfs.conf
修改的内容如下:
connect_timeout=30
tracker_server=IP:22122
group_name=g1
url_have_group_name = true
store_path_count=1
store_path0=/data/fastdfs/storage
5、创建软链接
cd /data/fastdfs/storage
mkdir data
mkdir M00
ln -s /data/fastdfs/storage/data/data/fastdfs/storage/data/M00
linux下开机启动:
cp /usr/local/src/FastDFS/init.d/fdfs_storaged /etc/init.d/
systemctl enable fdfs_storaged.service
配置storage完毕、
6.启动nginx,fastdfs
/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
/usr/local/nginx/sbin/nginx
7测试启动是否成功:
查看是否启动成功
vi /etc/fdfs/client.conf
修改内容如下:
base_path=/data/fastdfs
tracker_server=IP:22122
执行命令检测: fdfs_monitor /etc/fdfs/client.conf
生成以下内容则成功
8.启动成功后上传测试这里采用客户端自带的命令上传
fdfs_upload_file /etc/fdfs/client.conf /data/test/aaa.jpg
如果成功,会在窗口内打印存储地址,如下图:
这时候用过 IP/g1/M00/########### 就能访问你storage服务器的图片了
由于一般是所有请求都由tracker端去处理,上传下载都交给tracker处理,所以tracker也需要安装nginx 与上面步骤相同
安装完修改配置文件
vi /usr/local/nginx/conf/nginx.conf
#下载负载storage 的nginx
upstream gropu1 {
server storage:80 weight=1 max_fails=2 fail_timeout=30s;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#下载还有图片回显请求 再 由tracker服务器跳转到storage nginx 服务器
location /g1/M00 {
internal;#设置 tracker服务器无法直接访问文件
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://gropu1;
proxy_redirect default;
}
#这里是反向代理先跳转tracker服务器 后进行上传操作
location /fileServer {
proxy_pass http://tracker:8080;
}
}
/usr/local/nginx/sbin/nginx -s reload
以下是tracker数据库截图以及tracker服务器访功能截图
以下是直接访问storage服务器显示图片
但是这样不太安全,我是不推荐让用户直接去接触文件服务器