FastDFS
1、 docker安装
拉取镜像
docker pull morunchang/fastdfs
运行tracker 镜像
docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh
运行storage 镜像
docker run -d --name storage --net=host -e TRACKER_IP=<your tracker server address>:22122 -e GROUP_NAME=<group name> morunchang/fastdfs sh storage.sh
/*
1.使用的网络模式是–net=host, <your tracker server address> 替换为你机器的Ip即可
2.<group name> 是组名,即storage的组,下面默认用group1
3.如果想要增加新的storage服务器,再次运行该命令,注意更换 新组名
4. docker ps 查看容器信息
[root@iZh3cshm0xz7wjZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ccdf6bbeab48 morunchang/fastdfs "sh storage.sh" 5 seconds ago Up 4 seconds storage
a7253c93bce1 morunchang/fastdfs "sh tracker.sh" About a minute ago Up About a minute tracker
*/
修改storage 镜像 Nginx配置
//1.进入容器内部
docker exec -it storage /bin/bash
// storage 是 docker ps 中的NAMES
// exit 退出
root@iZh3cshm0xz7wjZ:/# cd data
root@iZh3cshm0xz7wjZ:/data# ls
fast_data fastdfs fastdfs-nginx-module libfastcommon nginx nginx-1.9.11.tar.gz
//2.修改nginx配置文件
root@iZh3cshm0xz7wjZ:/# vi /data/nginx/conf/nginx.conf
//3. 添加修改内容
location /group1/M00 {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache http-cache;
proxy_cache_valid 200 304 12h;
proxy_cache_key $uri$is_args$args;
proxy_pass http://fdfs_group1;
expires 30d;
}
//4.退出
root@iZh3cshm0xz7wjZ:/data/nginx/conf# exit
exit
//5. 重启storage服务
[root@iZh3cshm0xz7wjZ ~]# docker restart storage
storage
2、 安装包离线安装
2.1、 FastDFS-nginx-module
下载安装包
安装FastDFS
使用脚本进行安装fastDFS
安装FastDFS-nginx-module
#解压
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
#修改插件模块的config文件
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/" # 修改之前
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/include/fastcommon/" # 修改之后
将mod_fastdfs.conf拷贝到/etc/fdfs目录下并修改配置信息
cp /home/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fds
#修改的信息有:
base_path=/data/fdfs/storage
traker_server=192.169.0.2:22122 #tracker 配置文件的ip
url_have_group_name= true
store_path0=/data/fdfs/storage
group_count=1
#在末尾加上
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/data/fdfs/storage
设置软连接
ln -s /usr/local/lib64/libfdfsclient.so /usr/lib64/libfdfsclient.so
ln -s /usr/local/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
设置软连接
#pcre依赖包解压,zlib依赖包解压
#配置Nginx的时候会指定依赖地址
测试
#1).查看端口监听:
netstat -unltp|grep fdfs
#2)上传文件
#(1)配置client.conf文件:
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vim /etc/fdfs/client.conf
#修改以下参数:
base_path=/data/fdfs/ tracker #tracker服务器文件路径
tracker_server=192.168.31.254:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=8080 # tracker 服务器的 http 端口号,必须和tracker.conf的设置对应起来
#(2)测试文件上传:
/usr/local/bin/fdfs_test /etc/fdfs/client.conf upload /home/timg.jpg
#(3)测试文件下载
/usr/local/bin/fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgf_ln1fLyAchE7AAEIhvAoRxA722_big.jpg timg2.jpg
2.2、 安装Nginx-storage
安装
#解压
tar -zxvf nginx-1.8.0.tar.gz
#进入目录
cd /home/nginx-1.8.0/
#编译
./configure --prefix=/data/nginx --add-module=/home/fastdfs-nginx-module/src --with-pcre=/home/pcre-8.36 --with-zlib=/home/zlib-1.2.11
#--prefix=/data/nginx 安装目录
#--add-module=/home/fastdfs-nginx-module/src 指定fastdfs-nginx-module模块的目录
#--with-pcre=/home/pcre-8.36 #prce解压目录
#--with-zlib=/home/zlib-1.2.11 #zlib解压目录
# 安装
make && make install
修改配置文件
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8888; #这里修改成storage服务的http.server_port=8888
server_name localhost;
location / {
if ($args ~ type=download){
add_header Content-Disposition "attachment;";
}
root /home/fastdfs/fastdfs_storage_data/data; #文件实际存储路径
ngx_fastdfs_module; #模块名称
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
启动Nginx-storage
/usr/local/nginx_storage/sbin/nginx -t
2.3、 安装Nginx-tracker
安装Nginx-tracker
参照 Nginx-storage 修改安装位置即可
[root@myhost nginx-1.16.1]# cd /usr/local/nginx_tracker/conf/
[root@myhost conf]# egrep -v "#|^$" nginx.conf
user root;
worker_processes 1;
events {
worker_connections 102400;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
upstream fdfs_group1 {
server 127.0.0.1:8888; #负载均衡是访问的实际地址是storage的http.server_port:88
}
server {
listen 8080; #tracker服务的http端口号,访问这个端口的时候会自动去访问上面负载的实际地址storage_nginx的http地址。
server_name localhost;
location /group1/M00 {
proxy_pass http://fdfs_group1;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
[root@myhost conf]# chown -R nginx:nginx /usr/local/nginx_tracker
启动Nginx-tracker
/usr/local/nginx_tracker/sbin/nginx -t
测试
http://192.168.2.122:8888/group1/M00/00/00/CscpQF7d1gGAFNLvAAAo4zbLT5g645.png
http://192.168.2.122:8080/group1/M00/00/00/CscpQF7d1gGAFNLvAAAo4zbLT5g645.png
参考文档
https://blog.csdn.net/u014497669/article/details/109389406
https://www.it610.com/article/1297365448156848128.htm
https://www.cnblogs.com/lansetuerqi/p/12544572.html