精选文章 FastDfs安装,根据不同项目存放文件到不同目录

FastDfs安装,根据不同项目存放文件到不同目录

作者:hypon2016 时间: 2019-11-06 10:17:43
hypon2016 2019-11-06 10:17:43

1、下载和解压fastdfs,libfastcommon,nginx,fastdfs-nginx-module

#master机器执行
#安装一些会用到的包
yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget
mkdir -p /data/fdfs
cd /data/fdfs
wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz
wget https://github.com/happyfish100/libfastcommon/archive/master.zip
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.zip
wget http://nginx.org/download/nginx-1.12.0.tar.gz
tar -zxvf V5.11.tar.gz 
unzip master.zip 
unzip V1.20.zip 
tar -zxvf nginx-1.12.0.tar.gz

2.1 安装libfastcommon

cd /data/fdfs/libfastcommon-master/
./make.sh
./make.sh install
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

2.2 安装FastDfs

cd /data/fdfs/fastdfs-5.11/
./make.sh
./make.sh install
cd /etc/fdfs/
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf

FastDFS安装结束,开始安装tracker、storage

3.1 安装tracker

mkdir -p /data/fdfs/fastdfs_tracker
cd /etc/fdfs
vi tracker.conf
#修改路径,其他不用修改
base_path=/data/fdfs/fastdfs_tracker 
http.server_port=6666
# 启动tracker
service fdfs_trackerd start
chmod +x /etc/rc.d/rc.local
# 添加开机自启动
vi /etc/rc.d/rc.local
#在最后一行加上
service fdfs_trackerd start
# 检查是否监听正常
netstat -unltp|grep fdfs

3.2 安装storage

mkdir -p /data/fdfs/fastdfs_storage  
mkdir -p /data/fdfs/data0
mkdir -p /data/fdfs/data1
mkdir -p /data/fdfs/data2
mkdir -p /data/fdfs/data3
mkdir -p /data/fdfs/data4
vi /etc/fdfs/storage.conf
修改路径
base_path=/data/fdfs/fastdfs_storage
store_path_count=5
store_path0=/data/fdfs/data0
store_path1=/data/fdfs/data1
store_path2=/data/fdfs/data2
store_path3=/data/fdfs/data3
store_path4=/data/fdfs/data4
tracker_server=192.168.1.131:22122 填写自己本机ip 
#启动storage
service fdfs_storaged start
# 添加开机自启动
vim /etc/rc.d/rc.local
#在最后一行加上
service fdfs_storaged start

修改客户端

vi /etc/fdfs/client.conf

base_path=/data/fdfs/fastdfs_tracker 
tracker_server=192.168.1.131:22122 填写自己本机ip
http.tracker_server_port=6666

上传图片或者其他文件  注意使用自己ip

# 默认上传至/data/fdfs/data0
fdfs_upload_file  /etc/fdfs/client.conf /root/1350604643139.jpg
#返回是是:group1/M00/00/00/wKgBg13COViAXSD1AA_-EN9C8yw234.jpg
cd /data/fdfs/data0/data/00/00
ls

#上传其他目录下
fdfs_upload_file  /etc/fdfs/client.conf /root/1350604643139.jpg 192.168.1.131:23000 4
#返回的是:group1/M04/00/00/wKgBg13CMlCAMrY5AA_-EN9C8yw649.jpg
cd /data/fdfs/data4/data/00/00
ls

现在还不能再网页访问文件图片,需要使用nginx代理

FastDFS的nginx模块安装

安装nginx并添加fastdfs-nginx-module

cd  /data/fdfs/fastdfs-nginx-module-1.20/src
sed -i 's/\/usr\/local\/include/\/usr\/include\/fastdfs \/usr\/include\/fastcommon\//g' config

cd /data/fdfs/nginx-1.12.0
./configure --prefix=/usr/local/nginx --add-module=/data/fdfs/fastdfs-nginx-module-1.20/src/
make
make install
#修改nginx配置  具体内容在本文后面单独放
vim /usr/local/nginx/conf/nginx.conf
# 修改完后需要复制一些其他文件
cp /data/fdfs/fastdfs-5.11/conf/http.conf /etc/fdfs/
cp /data/fdfs/fastdfs-5.11/conf/mime.types /etc/fdfs/
cp /data/fdfs/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
#修改的地方有
tracker_server=192.168.1.131:22122
url_have_group_name = true
store_path_count=6
store_path0=/data/fdfs/data0
store_path1=/data/fdfs/data1
store_path2=/data/fdfs/data2
store_path3=/data/fdfs/data3
store_path4=/data/fdfs/data4
store_path5=/data/fdfs/data5

#启动nginx
/usr/local/nginx/sbin/nginx
#关闭nginx
/usr/local/nginx/sbin/nginx -s stop
#查看图片:
http://192.168.1.131/group1/M04/00/00/wKgBg13CMlCAMrY5AA_-EN9C8yw649.jpg

更多关于nginx启动与关闭,可以设置成systemctl start nginx。具体详见centos7下如何自行在systemctl添加系统服务

如果需要一主一备,只需要在另外一台机器安装storage即可

 

配置的nginx.conf

worker_processes  4;
user root;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    upstream fdfs_group1 {
        server 192.168.1.131:9999;
        #server 192.168.1.117:9999;
    }
    server {
        listen       80;
        server_name  localhost;
        location ~* /group1/(M00|M01|M02|M03|M04|M05) {
            proxy_pass http://fdfs_group1;
        }
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       9999;
        server_name  localhost;
        location /group1/M00 {
            root /mnt/fdfs/data0/data;
            if ($arg_attname ~ "^(.+)") {
                add_header Content-Type application/x-download;
                add_header Content-Disposition "attachment;filename=$arg_attname";
            }
            ngx_fastdfs_module;
        }
        location /group1/M01 {
            root /mnt/fdfs/data1/data;
            if ($arg_attname ~ "^(.+)") {
                add_header Content-Type application/x-download;
                add_header Content-Disposition "attachment;filename=$arg_attname";
            }   
            ngx_fastdfs_module;
        }
        location /group1/M02 {
            root /mnt/fdfs/data2/data;
            if ($arg_attname ~ "^(.+)") {
                add_header Content-Type application/x-download;
                add_header Content-Disposition "attachment;filename=$arg_attname";
            }   
            ngx_fastdfs_module;
        }   
        location /group1/M03 {
            root /mnt/fdfs/data3/data;
            if ($arg_attname ~ "^(.+)") {
                add_header Content-Type application/x-download;
                add_header Content-Disposition "attachment;filename=$arg_attname";
            }   
            ngx_fastdfs_module;
        }   
        location /group1/M04 {
            root /mnt/fdfs/data4/data;
            if ($arg_attname ~ "^(.+)") {
                add_header Content-Type application/x-download;
                add_header Content-Disposition "attachment;filename=$arg_attname";
            }   
            ngx_fastdfs_module;
        }   
        location /group1/M05 {
            root /mnt/fdfs/data5/data;
            if ($arg_attname ~ "^(.+)") {
                add_header Content-Type application/x-download;
                add_header Content-Disposition "attachment;filename=$arg_attname";
            }   
            ngx_fastdfs_module;
        }   
    }
}

 

 

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:WPF 关于使用style后Button中的content不能显示问题

下一篇:LeetCode - Remove Duplicates from Sorted List

您可能感兴趣

  • windows环境安装MySQL

    windows环境安装MySQL 本篇主要介绍如何在windows中,安装社区版MySQL(ZIP包形式)。 说明: 貌似从8.0版本以后,MySQL的安装包主要是ZIP形式,且只适用64位的windows; 8.0版本以前的提供ZIP Archive、MSI Installer两种安装包; 使用ZIP包安装,需要手动去配置,包也大些;使用MSI包安装,提供安装向导,包相对小些。 步骤1: ...

  • 【STM32F429开发板用户手册】第38章 STM32F429的FMC总线应用之是32路高速IO扩展

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第38章 STM32F429的FMC总线应用之是32路高速IO扩展 本章教程为大家讲解利用STM32429的FMC总线扩展出32路高速IO,且使用简单,实际项目中也比较有实用价值。 目录 第38章 STM32F429的FMC总线应用之是32路高速IO扩展 38.1 初...

  • 【计算机网络】第七章:网络安全

    【计算机网络】第七章:网络安全 目录 网络安全问题概述 1.1.计算机网络面临的安全性威胁 1.2.被动攻击和主动攻击 1.3.计算机网络通信安全的目标 1.4.恶意程序(rogue program) 1.5.计算机网络安全的内容 1.6.一般的数据加密模型 两类密码体制 一、对称密钥密码体制 1.1.对称密钥的缺点与优点 1.2.数据加密标准 DES 1.3.DES 的保密性 二、公钥密码...

  • 工作流学习2(书本)

    1、流程引擎的创建。 1.1、ProcessEngineConfiguration的buildProcessEngine方法 使用ProcessEngineConfiguration的create方法可以得到ProcessEngineConfiguration的实例。ProcessEngineConfiguration中提供了一个buildProcessEngine方法,该方法返回一个Pro...

  • grafana使用MYSQL数据源展示

    新增数据源 Grafana支持许多不同的数据源。每个数据源都有一个特定的查询编辑器,该编辑器定制的特性和功能是公开的特定数据来源。 官方支持以下数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB。 每个数据源的查询语言和能力都是不同的。 你可以把来自多个数据源的数据组合到一个仪表板dashbo...

  • HDFS的功能和架构原理详解

    目录 一、分布式文件系统的理解 二、HDFS的架构详细剖析 1. 文件分块存储&3副本 2. 抽象成数据块的好处 3. HDFS架构 4. 扩展 三、HDFS的shell命令操作 四、HDFS安全模式 一、分布式文件系统的理解 最直观的理解便是三个臭皮匠,顶个诸葛亮。 很多的磁盘加一起就可以装下天下所有的avi 类似于你出五毛,我出五毛,我们一起凑一块的效果 如下图: 二、HDFS的架构详细...

  • 物联网大数据平台有哪些功能特点

      大数据技术是指从各种各样海量类型的数据中,快速获得有价值信息的能力。适用于大数据的技术,包括大规模并行处理(MPP)数据库,数据挖掘电网,分布式文件系统,分布式数据库,云计算平台,互联网,和可扩展的存储系统。   一个物联网大数据平台需要具备哪些功能?与通用的大数据平台相比,它需要具备什么样的特征呢?我们来仔细分析一下。   1.高效分布式   必须是高效的分布式系统。物联网产生的数据量...

  • 2020-08-05 ---运维工程师常见面试题整理-----篇章(一)

    一 . Zabbix作用是什么,可以监控什么, 优化有什么,工作原理? Zabbix作用:监控网络主机 监控:硬件(路由器 交换机 防火墙),系统(cpu负荷 ,内存,磁盘,网络,进程,tcp )服务(nginx,php,tomcat,redis,memcache,mysql) web(响应时间,加载时间,渲染时间) 日志(ELK,收集,存储,分析,展示)安全(firewalld) Zabb...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。