Nginx+Fastdfs

注:
在配置时,使用非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

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/Nedved/p/10472418.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484528.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6小时完成,Jeff Dean领衔AI设计芯片方案登Nature,谷歌第四代TPU已用 芯快递 今天...

来源&#xff1a;机器之心编辑&#xff1a;杜伟、陈萍将芯片的布局规划看作一个深度强化学习问题&#xff0c;谷歌大脑团队希望用 AI 来提升芯片设计效率。基于 AI 的最新设计方案可以在数小时内完成人类设计师耗费数月才能完成的芯片布局&#xff0c;这将有可能引领一场新的芯…

python-异常

#异常&#xff1a;每个异常都是一些类的实例&#xff0c;这些实例可以被引发&#xff0c;也可以进行捕捉&#xff1b; #异常的引发&#xff1a;通过raise语句可以引发异常raise Exception raise Exception("MyException!")#通过dir函数可以得到模块的内容 import mat…

在Docker中运行Vue.js项目(开发环境/生产环境)

新冠疫情自我检测系统网页设计开发文档 Sylvan Ding 的第一个基于 Vue.js 的项目. 本项目所提供的信息&#xff0c;只供参考之用&#xff0c;不保证信息的准确性、有效性、及时性和完整性&#xff0c;更多内容请查看国家卫健委网站&#xff01; Explore the docs View Demo…

所有竞争,本质都是“硬核能力”之争

来源&#xff1a;中科创星文 &#xff1a;君莫笑轮值主编&#xff1a;智勇 值班编辑 &#xff1a;金木研一、科技创新&#xff0c;是世界进步的第一推动力站在5000年后的今天&#xff0c;回首人类的发展进程&#xff0c;从石器时代—青铜时代—铁器时代—蒸汽时代—电气时代—信…

深度报告:芯片设计EDA 2.0时代,三大路径搞定六大挑战

编辑&#xff1a;智东西内参EDA是Electronic Design Automation的缩写&#xff0c;几十年来成为芯片设计模块、工具、流程的代称。从仿真、综合到版图&#xff0c;从前端到后端&#xff0c;从模拟到数字再到混合设计&#xff0c;以及工艺制造等&#xff0c;EDA工具涵盖了芯片设…

2018上海

转载于:https://www.cnblogs.com/kakaisgood/p/10158442.html

python-类方法和属性

#类方法&#xff0c;属性和迭代器 #为了类是新型的&#xff0c;应该把语句__metaclass__type放在模块的开始&#xff0c; #或者子类化内建类object class newtype(object):pass#构造方法&#xff1a;一个对象创建后&#xff0c;会立即调用构造方法&#xff0c;即__init__ class…

taro中子父传值

其实网上很多方法,我这只是一个简单的demo,废话不多说直接上代码 import Taro, { Component } from tarojs/taro import { View, Text } from tarojs/components import ./index.less//子组件 class Child extends Component{constructor(props) {super(props);this.state ({}…

如何计算感受野(Receptive Field)

深度神经网络中的感受野(Receptive Field) 本文转载自知乎&#xff1a;深度神经网络中的感受野(Receptive Field) - 蓝木达的文章 - 知乎 在机器视觉领域的深度神经网络中有一个概念叫做感受野&#xff0c;用来表示网络内部的不同位置的神经元对原图像的感受范围的大小。神经元…

物理学需要哲学,哲学需要物理学

来源&#xff1a;微信公众号“Philosophia 哲学社”撰文&#xff1a;卡洛罗威利&#xff08;Carlo Rovelli&#xff09;翻译&#xff1a;朱科夫「反对哲学」是一位当代伟大的物理学家——诺贝尔物理奖得主、基本粒子物理「标准模型」的奠基人斯蒂文温伯格&#xff08;Steven We…

[转帖]Oracle 11G RAC For Windows 2008 R2部署手册

Oracle 11G RAC For Windows 2008 R2部署手册&#xff08;亲测&#xff0c;成功实施多次&#xff09; https://www.cnblogs.com/yhfssp/p/7821593.html 总体规划 服务器规划 1、建议使用两台硬件配置一模一样的服务器来作为 RAC 环境的两个物理节点 2、服务器至少需要配置两块物…

生日快乐送女朋友的网页生日礼物模版

生日快乐送女朋友的网页生日礼物模版 Demo: http://sylvanding.online/happy-birthday-20221120 仓库&#xff1a;https://github.com/sylvanding/happy-birthday-20221120 参考 背景 https://codepen.io/arcs/pen/XKKYZW蛋糕 https://codepen.io/fixcl/pen/AaBNZB卡片 http…

美国独步世界的八大领域

来源&#xff1a;世界先进制造技术论坛一、美国诺贝尔奖获得者世界第一

Hinton的胶囊网络不太行?CVPR Oral论文:不比卷积网络更「强」

来源&#xff1a;机器学习研究组订阅在一篇 CVPR 2021 Oral 论文中&#xff0c;来自慕尼黑大学、微软亚研的研究者对胶囊网络和卷积网络进行了全面的对比。一系列实验表明&#xff0c;一些被认为对胶囊网络&#xff08;CapsNet&#xff09;至关重要的设计组件实际上会损害它的鲁…

数量庞大!中国成长型AI企业研究报告

来源&#xff1a;德勤Deloitte编辑&#xff1a;蒲蒲日前&#xff0c;德勤、英特尔和深圳人工智能行业协会联合发布《中国成长型AI企业研究报告》。该报告通过对数千家成长型AI企业数据的分析研究&#xff0c;几百家企业的走访以及和近百家优秀企业的深度合作&#xff0c;就中国…

除了芯片,我们还应关注这六大核心技术!

来源&#xff1a;疯狂机械控企业想发展自己还是需要掌握核心技术。除了芯片以外&#xff0c;还有哪些核心技术是我们重点关注的呢&#xff1f;01 软件定义机器▼设备智能化的体现就是典型的软件定义机器&#xff0c;包括机器轻松连接至互联网&#xff1b;将APP和分析结果嵌入机…

中国科学院院士褚君浩:第四次工业革命和智能时代

来源&#xff1a;信息化时代第一次工业革命起源于英国&#xff0c;以机械化为特征。第二次工业革命&#xff0c;以电气化为特征。第三次工业革命&#xff0c;以信息化为特征。现阶段&#xff0c;正值第四次工业革命&#xff0c;此次工业革命具有以下三个特征&#xff1a;信息科…

数据的描述统计量

一、本文简介   一组样本数据分布的数值特诊可以从三个方面进行描述&#xff1a; 1、数据的水平&#xff1a;也称为集中趋势或位置度量&#xff0c;反应全部数据的数值大小。 2、数据的差异&#xff1a;反应数据间的离散程度。 3、分布的形状&#xff1a;反应数据分布的偏度和…

Science:细胞如何测量自身的大小?答案是:DNA含量

图片显示的是一个茎尖分生组织(在中间)&#xff0c;在它的两侧出现了花蕾。绿色标记的细胞即将进入DNA复制。来源&#xff1a;生物通自从350多年前科学家在显微镜下发现细胞以来&#xff0c;他们就注意到每一种细胞都有其特有的大小。从微小的细菌到几英寸长的神经元&#xff0…

Windows 程序设计技巧

#include<iostream> #include<windows.h>using namespace std;int main() {int nSelect ::MessageBox(NULL,"windows 程序设计","测试",MB_OKCANCEL);if (nSelect IDOK){printf("OK!");}else{printf("Cancel!");}return…