FastDFS 与 Nginx 实现分布式图片服务器

本人的 Ubuntu18.04 用户名为 jj

点我下载所有所需的压缩包文件

一、FastDFS安装

1、安装 fastdfs 依赖包

① 解压 libfastcommon-master.zip 到 /home/jj/ 目录下

unzip libfastcommon-master.zip

② 进入到 libfastcommon-master 目录中

cd libfastcommon-master

③ 执行 ./make.sh

./make.sh

④ 执行 sudo ./make.sh install

sudo ./make.sh install

如果 ./make.sh 无效,显示未找到命令,是由于当前 Linux 没有相应的编译环境

安装 build-essential 的软件包,就可以一次将编译器、make工具、所有的编程头文件、函数库等全部安装上,其中也包括 gcc 编译器。

sudo apt-get install build-essential

再继续执行上面的 ③,④ 步骤。

2、安装 fstdfs

① 解压 fastdfs-master.zip 到 /home/jj/ 目录下

unzip fastdfs-master.zip

② 进入到 fastdfs-master 目录中

cd fastdfs-master

③ 执行 ./make.sh

./make.sh

④ 执行 sudo ./make.sh install

sudo ./make.sh install

3、配置跟踪服务器tracker

① 这一步目的是得到 tracker.conf 配置文件

sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

② 在 home/jj/ 目录下创建目录 fastdfs/tracker

mkdir -p /home/jj/fastdfs/tracker

③ 编辑 /etc/fdfs/tracker.conf 配置文件

sudo vim /etc/fdfs/tracker.conf

修改 base_path=/home/jj/fastdfs/tracker

如果显示 vim:找不到命令,是因为当前 Linux 没有安装 vim

安装 vim

sudo apt-get install vim

再继续执行上面的 ③ 步骤。

4、配置存储服务器 storage

① 这一步目的是得到 storage.conf 配置文件

sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

② 在 home/jj/fastdfs 目录下创建目录 storage

mkdir –p /home/jj/fastdfs/storage

③ 编辑 /etc/fdfs/storage.conf 配置文件

sudo vim /etc/fdfs/storage.conf

修改内容:

base_path=/home/jj/fastdfs/storage

store_path0=/home/jj/fastdfs/storage

tracker_server=自己ubuntu虚拟机的ip地址:22122

通过 ifconfig -a 可以查看本机的 ip 地址。

如果出现 Command 'ifconfig' not found,那么需要安装 net-tools

sudo apt-get install net-tools

5、启动tracker 和 storage

sudo service fdfs_trackerd start
sudo service fdfs_storaged start

6、测试 FastDFS 是否安装成功

① 这一步目的是得到 client.conf 配置文件

sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf

② 编辑/etc/fdfs/client.conf配置文件

sudo vim /etc/fdfs/client.conf

修改内容:

base_path=/home/jj/fastdfs/tracker

tracker_server=自己ubuntu虚拟机的ip地址:22122

③ 上传文件测试

fdfs_upload_file /etc/fdfs/client.conf 要上传的图片文件

举例:假如在 home/jj/ 目录下有一张图片 head.jpg,进行文件上传

fdfs_upload_file /etc/fdfs/client.conf /home/jj/head.jpg

如果返回类似 group1/M00/00/00/wKifglwSKf2Ac1GOAAAp-z3D5w8355.jpg 的文件 id 则说明文件上传成功。

二、安装 nginx 及 fastdfs-nginx-module

① 解压 nginx-1.8.1.tar.gz 和 fastdfs-nginx-module-master.zip 到 /home/jj/ 目录下

tar -zxvf nginx-1.8.1.tar.gz
unzip fastdfs-nginx-module-master.zip

② 安装 nginx 依赖

解决依赖包openssl安装,命令:

sudo apt-get install openssl libssl-dev

解决依赖包pcre安装,命令:

sudo apt-get install libpcre3 libpcre3-dev

解决依赖包zlib安装,命令:

sudo apt-get install zlib1g-dev

③ 进入 /home/jj/nginx-1.8.1 目录中

cd /home/jj/nginx-1.8.1

④ 执行

sudo ./configure --prefix=/usr/local/nginx/ --add-module=fastdfs-nginx-module-master解压后的目录的绝对路径/src

在这里为:

sudo ./configure --prefix=/usr/local/nginx/ --add-module=/home/jj/fastdfs-nginx-module-master/src

⑤ 删除 /home/jj/nginx-1.8.1/objs/Makefile 中第三行的 -Werror,否则编译的时候报错

sudo vim /home/jj/nginx-1.8.1/objs/Makefile

然后继续执行以下命令:

sudo make
sudo make install

⑥ 这一步是得到 mod_fastdfs.conf 配置文件

sudo cp fastdfs-nginx-module-master解压后的目录中src下的mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf

在这里为:

sudo cp /home/jj/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf

⑦ 编辑 mod_fastdfs.conf 配置文件

sudo vim /etc/fdfs/mod_fastdfs.conf

修改内容:

connect_timeout=10

tracker_server=自己ubuntu虚拟机的ip地址:22122

url_have_group_name=true

store_path0=/home/jj/fastdfs/storage

sudo cp 解压后的fastdfs-master目录中conf目录中的http.conf /etc/fdfs/http.conf

在这里为:

sudo cp /home/jj/fastdfs-master/conf/http.conf /etc/fdfs/http.conf

sudo cp 解压后的fastdfs-master目录中conf目录中的mime.types /etc/fdfs/mime.types

在这个为:

sudo cp /home/jj/fastdfs-master/conf/mime.types /etc/fdfs/mime.types

⑨ 修改 nginx.conf 配置文件

sudo vim /usr/local/nginx/conf/nginx.conf

在http部分中添加配置信息如下:

server {
listen 8888;
server_name localhost;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

⑩ 启动 nginx

sudo /usr/local/nginx/sbin/nginx

三、验证Nginx是否能成功访问FastDFS存储的图片

在我们上传图片 head.jpg 的时候,FasttDFS 会返回我们一个类似 group1/M00/00/00/wKifglwSKf2Ac1GOAAAp-z3D5w8355.jpg 这样的字符串。

在浏览器访问:

127.0.0.1:8888/group1/M00/00/00/wKifglwSKf2Ac1GOAAAp-z3D5w8355.jpg

如果能显示该图片就说明我们安装成功了。

四、一些基本常用命令

1、启动 tracker 和 storage

sudo service fdfs_trackerd start
sudo service fdfs_storaged start

2、启动,关闭,重启 nginx

进入 /usr/local/nginx/sbin/ 文件夹

启动 nginx:

sudo ./nginx

关闭 nginx:

sudo ./nginx -s stop

重启 nginx:

sudo ./nginx -s reload

3、查看 nginx 进程

ps aux | grep nginx

4、通过 pid 查看 nginx 的占用端口

netstat -nap | grep nginx 的 pid

FastDFS 与 Nginx 实现分布式图片服务器的更多相关文章

  1. centos6.5安装配置fastdfs+nginx实现分布式图片服务器

    一.准备 yum groupinstall -y "Development Tools"yum install -y wget libevent-devel pcre-devel ...

  2. FastDFS分布式图片服务器搭建

    一:Fastdfs简介 1. 什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制, 充分考虑了冗余备份.负载均衡.线性扩容等机制,并注 ...

  3. 使用rsync+inotify+apache做分布式图片服务器的部署方法

    图片服务器一般是做成分布式的,但要使得所有的图片服务器的文件一致,可以由一个主服务器将文件推送到各个备份服务器上. rsync:文件差异检查及文件推送 inotify:事件触发,实时检测到添加.删除. ...

  4. nginx+ftp搭建图片服务器(Windows Server服务器环境下)

    几种图片服务器的对比 1.直接使用ftp服务器,访问图片路径为 ftp://账户:密码@192.168.0.106/31275-105.jpg 不采用这种方式,不安全容易暴露ftp账户信息 2.直接使 ...

  5. 转:Linux下使用Nginx搭建简单图片服务器

    最近经常有人问图片上传怎么做,有哪些方案做比较好,也看到过有关于上传图片的做法,但是都不是最好的,今天再这里简单讲一下Nginx实现上传图片以及图片服务器的大致理念. 如果是个人项目或者企业小项目,仅 ...

  6. Nginx发布静态图片服务器

    vir-hosts.conf内容 server { listen ; server_name _; location ~ .*\.(gif|jpg|jpeg|png)$ { expires 24h; ...

  7. windows版nginx+ftp实现图片服务器的搭建

    配置图片服务器的一部分参数 resource.properties: #FTP\u76f8\u5173\u914d\u7f6e #FTP\u7684ip\u5730\u5740 FTP_ADDRESS ...

  8. 分布式图片服务器FastDFS

    1. 什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使 ...

  9. Nginx+Nodejs搭建图片服务器

    图片上传请求由Node处理,图片访问请求由Nginx处理. 1.Nginx配置 #user nobody; worker_processes 1; #error_log logs/error.log; ...

随机推荐

  1. 论文笔记【四】Semi-supervised Word Sense Disambiguation with Neural Models

    基于神经模型的半监督词义消歧 Dayu Yuan  Julian Richardson  Ryan Doherty  Colin Evans  Eric Altendorf Google, Mount ...

  2. 58 字体反爬攻略 python3

    1.下载安装包 pip install fontTools 2.下载查看工具FontCreator 百度后一路傻瓜式安装即可 3.反爬虫机制 网页上看见的 后台源代码里面的 从上面可以看出,生这个字变 ...

  3. 我的web前端整理和学习

    知识点收藏:(边看.边记录.边写) 开直播学习:虎牙 待办事理>> 练习自我表达(把文章做成视频).技术学习总结(博客与公众号).跳出舒适圈. 前端知识体系:https://www.cnb ...

  4. Parallels Desktop 14.1.3中文版win系统安装教程

    parallels desktop 14 中文版(pd虚拟机)是mac上最强大也是最好用的虚拟机软件,本站第一时间为大家带来这款parallels desktop 14 破解版,最新版本的parall ...

  5. day07数据类型的相互转化,字符编码

    复习 ''' 1.深浅拷贝 ls = [1, 'a', [10]] 值拷贝:直接赋值 ls1 = ls, ls中的任何值发生改变,ls1中的值都会随之改变 浅拷贝:通过copy()方法 ls2 = l ...

  6. mpvue小程序开发tips(1)

    wx.setStorageSync('vipId',vipId)-----存储   wx.getStorageSync('vipId')-------读取   wx.navigateTo({ url: ...

  7. Redis Index

    Indexes 集群 主从模型 哨兵机制与RAFT算法 实践 单机多实例 开启Sentinel 存储 持久化 RDB 与 AOF 数据结构 内存管理 事务 并发问题 分布式锁 整体图 中间件 Jedi ...

  8. 基于SVD的图像压缩

    算法简介 算法实现 我只是简单处理了一下图像的灰度值,如果要处理RGB值的话,就需要分别进行SVD分解,最后再合起来即可. import numpy as np from PIL import Ima ...

  9. LEETCODE 07 09

    最近忙着面试耽误了几天,今天刷了07,09都是字符串处理,一个是大数反转,一个是回文数判断,我都是转成字符串处理的,过了是过了,但是挺慢的,先记着,等有机会优化下 题目 给定一个 32 位有符号整数, ...

  10. 一梦江湖费六年——QQ群聊天分析

    本文结构: 一.那些年我们加过的QQ群 二.数据读入和整理(一)--来自蓝翔的挖掘机 二.数据读入和整理(二)--你不知道的事 三.聊天宏观(1)--寤寐思服 三.聊天宏观(2)日月篇 三.聊天宏观( ...