注:

在配置时,使用非root用户配置

fdfs/fdfs

1.    集群部署

1.1.    准备

创建目录:本文档中所有内容安装到/fdfs目录

[fdfs@5861be93b5b0 /]$mkdir -p /fdfs/fastdfs/data /fdfs/nginx/nginx_temp /fdfs/soft && ln -s /fdfs/fastdfs/data /fdfs/fastdfs/data/M00

[fdfs@5861be93b5b0 /]$sudo yum install gcc make gcc-c++ -y

上传文件:

上传【Nginx+Fastdfs.zip】包到安装目录/fdfs/soft,执行解压到soft目录

[fdfs@5861be93b5b0 /]$cd /fdfs/soft && unzip Nginx+Fastdfs.zip

1.2.    libfastcommon , fastdfs

1.2.1安装libfastcommon

[fdfs@5861be93b5b0 /]$cd /fdfs/soft && tar -xvf libfastcommon.tar&&cd libfastcommon

[fdfs@5861be93b5b0 /]$./make.sh && ./make.sh install

1.2.2安装 fastdfs

[fdfs@5861be93b5b0 /]$cd /fdfs/soft && tar -xvf FastDFS_v5.08.tar.gz && cd FastDFS

1.2.3拷贝配置文件到/fdfs/fastdfs/config

[fdfs@5861be93b5b0 /]$TARGET_CONF_PATH=/fdfs/fastdfs/config

[fdfs@5861be93b5b0 /]$

cat > ./1.sh <<EOF

    TARGET_CONF_PATH=/fdfs/fastdfs/config

    if [ ! -d \$TARGET_CONF_PATH ]; then

            mkdir -p \$TARGET_CONF_PATH

fi

            cp -f conf/tracker.conf \$TARGET_CONF_PATH

            cp -f conf/storage.conf \$TARGET_CONF_PATH

            cp -f conf/client.conf \$TARGET_CONF_PATH

            cp -f conf/http.conf \$TARGET_CONF_PATH

            cp -f conf/mime.types \$TARGET_CONF_PATH

EOF

    [fdfs@5861be93b5b0 /]$sh 1.sh&&rm -f 1.sh

1.2.4修改make文件配置路径为/fdfs/fastdfs

[fdfs@5861be93b5b0 /]$sed -i 's#$DESTDIR/usr$#/fdfs/fastdfs#' make.sh

[fdfs@5861be93b5b0 /]$sed -i 's#$DESTDIR/etc/fdfs#/fdfs/fastdfs/config#' make.sh

[fdfs@5861be93b5b0 /]$sed -i 's#$DESTDIR/etc/init.d#/fdfs/fastdfs/init.d#' make.sh

1.2.5安装

[fdfs@5861be93b5b0 /]$./make.sh && ./make.sh install

1.2.2.    验证

进入/fdfs/fastdfs,出现以下5个目录bin、config、data(手工创建)、include、lib、init.d

[fdfs@5861be93b5b0 /]$ll /fdfs/fastdfs

total 312

drwxr-xr-x. 2 root root   4096 Nov  5 06:20 bin

drwxr-xr-x. 2 root root    204 Nov  5 06:46 config

drwxr-xr-x. 2 root root     17 Nov  5 06:17 data

drwxr-xr-x. 3 root root     21 Nov  5 06:20 include

drwxr-xr-x. 2 root root     48 Nov  5 06:20 init.d

drwxr-xr-x. 2 root root     54 Nov  5 06:56 lib64

把libfastcommon 的动态库关联到fdfs

ln -s /usr/lib64/libfastcommon.so /fdfs/fastdfs/lib64/libfastcommon.so

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

 ln -s /fdfs/fastdfs/lib64/libfdfsclient.so /usr/lib64/libfdfsclient.so

 ln -s /fdfs/fastdfs/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

 ln -s /usr/include/fastcommon/* /fdfs/fastdfs/include/fastdfs/

1.3.    nginx

1.3.1.    解压依赖库

[fdfs@5861be93b5b0 /]$cd /fdfs/soft && tar -zxvf pcre-8.42.tar.gz && tar -zxvf zlib-1.2.11.tar.gz && tar -zxvf openssl-1.0.2n.tar.gz

1.3.2.    配置fastdfs-nginx-module模块

[fdfs@5861be93b5b0 /]$cd /fdfs/soft && tar -zxvf fastdfs-nginx-module_v1.16.tar.gz && cd fastdfs-nginx-module/src && cp mod_fastdfs.conf /fdfs/fastdfs/config

修改对应的库路径

sed -i 's#/usr/local/#/fdfs/fastdfs/#g' config

sed -i 's#/etc/fdfs/#/fdfs/fastdfs/config/#' config

sed -i 's#lib#lib64#' config

1.3.3.    安装nginx

[fdfs@5861be93b5b0 /]$cd /fdfs/soft && tar -xvf nginx-1.15.5.tar.gz && cd nginx-1.15.5 && ./configure --prefix=/fdfs/nginx --with-pcre=/fdfs/soft/pcre-8.42 --with-zlib=/fdfs/soft/zlib-1.2.11 --with-openssl=/fdfs/soft/openssl-1.0.2n --add-module=/fdfs/soft/fastdfs-nginx-module/src && make && make install

1.3.4.    验证

进入/nginx/nginx,出现以下5个目录conf、html、logs、nginx_temp(手工创建)、sbin

[root@72fcbfa4c397 libfastcommon-master]$ ll /fdfs/nginx/

total 4

drwxr-xr-x. 2 root root 4096 Dec 20 08:54 conf

drwxr-xr-x. 2 root root   40 Dec 20 08:54 html

drwxr-xr-x. 2 root root    6 Dec 20 08:54 logs

drwxr-xr-x. 2 root root    6 Dec 20 07:33 nginx_temp

drwxr-xr-x. 2 root root   19 Dec 20 08:54 sbin

2.    配置

2.1 dfs的storage

[fdfs@5861be93b5b0 /]$cd /fdfs/fastdfs/config

[fdfs@5861be93b5b0 /]$vi storage.conf

port=23000                                  /* storage的端口,默认为23000*/

group_name=group1                           /*分组,默认为group1*/

base_path=/fdfs/fastdfs                   /*放置data和log的目录*/

store_path0=/fdfs/fastdfs                  /*放置文件的目录*/

tracker_server= 192.168.1.1:22122              /*tracker server的ip和端口,

tracker_server= 192.168.1.2:22122              可以写多个tracker server,每行一个*/

http.server_port=8080                          /*web server的端口改成8080*/

2.2.    dfs的tracker

2.2.1.    修改配置tracker.conf文件

[fdfs@5861be93b5b0 /]$cd /fdfs/fastdfs/config

[fdfs@5861be93b5b0 /]$vi tracker.conf

port=22122                                   /* tracker的端口,默认为22122*/

base_path=/fdfs/fastdfs                    /*放置data和log的目录*/

store_group=group1                             /*分组,改为group1*/

reserved_storage_space = 10%                     /*磁盘小于10%不允许上传*/

http.server_port=8080                           /*web server的端口改成8080*/

2.3.    配置nginx的插件

2.3.1.    修改配置mod_fastdfs.conf文件

[fdfs@5861be93b5b0 /]$cp /fdfs/soft/fastdfs-nginx-module/src/mod_fastdfs.conf /fdfs/fastdfs/config

[fdfs@5861be93b5b0 /]$cd /fdfs/fastdfs/config

[fdfs@5861be93b5b0 /]$vi mod_fastdfs.conf

connect_timeout=30

network_timeout=60

base_path=/fdfs/fastdfs               /*放置log的目录*/

tracker_server= 192.168.1.1:22122           /*tracker server的ip和端口,

tracker_server= 192.168.1.2:22122            可以写多个tracker server,每行一个*/

storage_server_port=23000                   /* storage的端口*/

group_name=group1                          /*分组,默认为group1*/

url_have_group_name=true                   /*是否在URL中包含group名称*/

store_path0=/fdfs/fastdfs               /*放置文件的目录*/

http.need_find_content_type=true

/*增加内容*/

http.mime_types_filename=/fdfs/fastdfs/config/mime.types

http.default_content_type=application/octet-stream

include /fdfs/fastdfs/config/http.conf

2.3.2.    修改配置http.conf文件

[fdfs@5861be93b5b0 /]$cd /fdfs/fastdfs/config

[fdfs@5861be93b5b0 /]$vi http.conf

http.mime_types_filename=/fdfs/fastdfs/config/mime.types

http.anti_steal.token_check_fail=/fdfs/fastdfs/config/anti-steal.jpg

2.3.3.    修改mime.types

[fdfs@5861be93b5b0 /]$cd /fdfs/fastdfs/config

[fdfs@5861be93b5b0 /]$vi mime.types

/*增加内容*/

#--add next contents

application/vnd.ms-word.document.macroEnabled.12 docm

application/vnd.openxmlformats docx pptx xlsx

application/vnd.ms-word.template.macroEnabled.12 dotm

application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx

application/vnd.ms-powerpoint.template.macroEnabled.12 potm

application/vnd.openxmlformats-officedocument.presentationml.template potx

application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam

application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm

application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx

application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm

application/vnd.ms-excel.addin.macroEnabled.12 xlam

application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb

application/vnd.ms-excel.sheet.macroEnabled.12 xlsm

application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx

application/vnd.ms-excel.template.macroEnabled.12 xltm

2.3.4.    修改client.conf

[fdfs@5861be93b5b0 /]$cd /fdfs/fastdfs/config

[fdfs@5861be93b5b0 /]$vi client.conf

base_path=/fdfs/fastdfs             /*放置文件的目录*/

tracker_server=192.168.1.1:22122      /*tracker server的ip和端口,

tracker_server=192.168.1.2:22122        可以写多个tracker server,每行一个*/

http.tracker_server_port=8080

2.4.    配置nginx

2.4.1.    修改配置nginx.conf文件

[fdfs@5861be93b5b0 /]$cd /fdfs/nginx/conf

[fdfs@5861be93b5b0 /]$vi nginx.conf

使用以下内容:

worker_processes  4;

error_log logs/error.log;

events {

worker_connections  1024;

use epoll;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

          listen       8080;

          server_name  localhost;

          access_log logs/access.log;

location ~ /group1/M00/* {

               root /fdfs/fastdfs/data;

               ngx_fastdfs_module;

               client_max_body_size 10m;

               client_body_temp_path /fdfs/nginx/nginx_temp;

               }

           }

upstream  group1 {

                server   192.168.1.1:8080 ;

                server   192.168.1.2:8080 ;

            }

server {

            listen       8081;

            server_name  localhost;

            location /group1/M00 {

                 proxy_pass http://group1;

                 proxy_redirect off;

                 proxy_set_header Host $host;

                 proxy_set_header X-Real-IP $remote_addr;

                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                 }

            }

}

2.5.    Nginx 启动

启动:/fdfs/nginx/sbin/nginx -c /fdfs/nginx/conf/nginx.conf

停止:/fdfs/nginx/sbin/nginx -s stop

重载:/fdfs/nginx/sbin/nginx -s reload

日志:/fdfs/nginx/logs/error.log

/fdfs/nginx/logs/access.log

首次启动可能出现以下错误

/fdfs/nginx/sbin/nginx: error while loading shared libraries: libfastcommon.so: cannot open shared object file: No such file or directory

解决办法:

echo "export LD_LIBRARY_PATH=/fdfs/fastdfs/lib:$LD_LIBRARY_PATH" >> ~/.bash_profile

source ~/.bash_profile

2.6.    Tracker命令

启动:/fdfs/fastdfs/bin/fdfs_trackerd /fdfs/fastdfs/config/tracker.conf

停止:killall fdfs_trackerd

日志:/fdfs/fastdfs/logs/trackerd.log

2.7.    Storage命令

启动:

/fdfs/fastdfs/bin/fdfs_storaged /fdfs/fastdfs/config/storage.conf

data path: /home/yuqing/fastdfs/data, mkdir sub dir...

mkdir data path: 00 ...

mkdir data path: 01 ...

mkdir data path: 02 ...

停止:killall fdfs_storaged

日志:/fdfs/fastdfs/logs/storaged.log

2.8.    测试

集群测试首次需要两台都启动,否则会报错

2.8.1.    测试分布式文件系统上传图片

上传命令格式:

/fdfs/fastdfs/bin/fdfs_upload_file  /fdfs/fastdfs/config/storage.conf    目标文件

[root@72fcbfa4c397 /]# /fdfs/fastdfs/bin/fdfs_upload_file /fdfs/fastdfs/config/storage.conf skr.jpg

group1/M00/00/00/rBEAAlwbcieANq7nAAL_SObQPXc730.jpg

在两台服务器的/fdfs/fastdfs/data/00/00目录可以找到此文件

2.8.2.    测试负载均衡系统访问

以下地址均可访问到内容

http://192.168.4.1:8080/group1/M00/00/00/rBEAAlwbcieANq7nAAL_SObQPXc730.jpg

http://192.168.1.2:8080/group1/M00/00/00/rBEAAlwbcieANq7nAAL_SObQPXc730.jpg

http://192.168.1.1:8081/group1/M00/00/00/rBEAAlwbcieANq7nAAL_SObQPXc730.jpg

http://192.168.1.2:8081/group1/M00/00/00/rBEAAlwbcieANq7nAAL_SObQPXc730.jpg

 
 
 

Nginx+Fastdfs的更多相关文章

  1. centos7 install nginx+fastdfs

    说明:centos7单机部署 nginx fastdfs ## 创建一下目录作为存储数据图片的路径 可以自己定义 mkdir -pv /data/application/{storage,tracke ...

  2. 基于Nginx+FastDFS搭建图片文件系统

    Nginx+fastdfs:https://www.cnblogs.com/chiangchou/p/fastdfs.html#_label0_1 缩略图:https://blog.csdn.net/ ...

  3. php nginx fastdfs 下载文件重命名

    其实fdfs可以传入一个filename参数,指定文件名.. M00/00/00/fwAAAVGMateAafjTAAAABBW-xbM368.txt?filename=test.txt 这样下载时用 ...

  4. nginx + fastdfs 的开机自启动

    虚拟机每次启动之后都要重新启动一下fastdfs 和 nginx服务,比较麻烦,所以增加开机自启动: 编辑 /etc/rc.d/rc.local 文件,增加启动项: 1.编辑文件 vim /etc/r ...

  5. centos搭建nginx+fastdfs

    软件地址 libfastcommon fastDFS fastdfs-nginx-module nginx 创建目录 mkdir -p /fastdfs/tracker mkdir -p /fastd ...

  6. 阿里云服务器centos7,docker部署mysql+Redis+vue+springboot+Nginx+fastdfs,亲测可用

    一.购买云服务器 我是今年双十一期间在阿里云购买的服务器, 简单配置2核_4G_40G_3M,三年用了不到800块,不过当时我记得腾讯云更便宜,个人感觉,阿里的云服务器更加的稳定, 毕竟身经百战, 经 ...

  7. 第2-3-1章 文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 文件存储服务 1. 需求背景 2. 核心功能 3. 存储策略 3.1 本地存储 3.2 FastDFS存储 3.3 云存储 3.4 minio 4. 技术设计 文件存储服务 全套代码及资料全部完 ...

  8. nginx + fastDFS 设置开机自动启动

    由于在服务器上有太多的软件 不可能每次启动都要重新启动服务吧(每晚断电...必须重启电脑) vim /etc/rc.d/rc.local 添加下列脚本 /usr/bin/fdfs_trackerd / ...

  9. linux上安装fastdfs+nginx+ngin-module实践并解决多个异常篇

    为什么选择Nginx Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性: 在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主 ...

随机推荐

  1. 硬不硬你说了算!35 张图解被问千百遍的 TCP 三次握手和四次挥手面试题

    每日一句英语学习,每天进步一点点: 前言 不管面试 Java .C/C++.Python 等开发岗位, TCP 的知识点可以说是的必问的了. 任 TCP 虐我千百遍,我仍待 TCP 如初恋. 遥想小林 ...

  2. 【webpack 系列】进阶篇

    本文将继续引入更多的 webpack 配置,建议先阅读[webpack 系列]基础篇的内容.如果发现文中有任何错误,请在评论区指正.本文所有代码都可在 github 找到. 打包多页应用 之前我们配置 ...

  3. 使用Dism命令对Win7镜像进行操作

    在操作前,我们需要下载Win7部署工具AIK和Win7原版镜像 ★镜像迅雷链接 ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408 ...

  4. 基于Asp.Net Core,利用ZXing来生成二维码的一般流程

    本文主要介绍如何在.net环境下,基于Asp.Net Core,利用ZXing来生成二维码的一般操作.对二维码工作原理了解,详情见:https://blog.csdn.net/weixin_36191 ...

  5. 发现钉钉打卡定位算法的一个bug

    最近公司取消了指纹打卡,改用钉钉打卡. 天天用这个打卡上班,经常忘记,困扰. 最烦的是好几次明明人在办公室,打卡地址显示在10分钟前的位置,定位失败,不得不重新打卡. 经历过几次定位失败后,我就琢磨起 ...

  6. 2019NYIST计科第七次周赛总结

    2019NYIST计科第七次周赛总结 文章目录 2019NYIST计科第七次周赛总结 [秤取物体重量( 二进制枚举法)](https://blog.csdn.net/qq_34261446/artic ...

  7. 1041 Be Unique (20分)(水)

    Being unique is so important to people on Mars that even their lottery is designed in a unique way. ...

  8. PTA数据结构与算法题目集(中文) 7-35 城市间紧急救援 (25 分)

    PTA数据结构与算法题目集(中文)  7-35 城市间紧急救援 (25 分) 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市 ...

  9. 各种版本docker下载的中国开源地址

    最近在群里听说Docker很火,于是自己抱着试试的态度,想玩玩,可是遇到了一些问题,记录下来,方便备忘,也方便防止大家被坑. 我的虚拟机装的是centos 6.5,百度了好多教程,丫的,都不解释,就一 ...

  10. Netty 中的 handler 和 ChannelPipeline 分析

    上一节我们讲了 Netty 的启动流程,从启动流程入手分析了 Reactor 模型的第一步:channel 如何绑定 Selector.然后讲到了 EventLoop 在启动的时候发挥了什么作用.整个 ...