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. DUILIB UI创建过程

    函数调用过程: CDialogBuilder 内部过程循环创建控件树 上图中 在AttachDialog中设置窗口的主控件  并设置控件树的pm

  2. Git 爬坑路(从小白开始入门) ——(1)

    通过git管理项目之前,需要先注册一个GitHub账号,方便在远程仓库进行项目管理. Git之项目在本地仓库的管理(从小白开始): 一.push到远程项目 1.在个人的GitHub账号中,创建一个远程 ...

  3. 用PIL库进行图像处理

    一.如果系统里没有安装PIL库的,请先到命令提示符输入“pip install pillow”进行安装 二.之后就可以参考以下的代码 from PIL import Image from pylab ...

  4. express之req res

    request对象和response对象 Request req.baseUrl 基础路由地址 req.body post发送的数据解析出来的对象 req.cookies 客户端发送的cookies数 ...

  5. linux服务基础(三)之Httpd2.4配置

    httpd-2.4 新特性: . MPM支持运行DSO机制,以模块形式按需加载 . 支持event MPM . 支持异步读写 . 支持每模块及每个目录分别使用各自的日志级别 . 每请求配置 <I ...

  6. Appium测试安卓apk遇到的问题及解决方法

    1.Showing error - “Returned value cannot be converted to WebElement: {ELEMENT=1}  解决方法:https://sqa.s ...

  7. [ZOJ 4020] Traffic Light

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4020 很简单的一个bfs题,是我想多了. 顺便学习一下C++的S ...

  8. Java集合源码分析之ArrayList

    ArrayList简介 从上图可以看到,ArrayList是集合框架中List接口的一个实现类,它继承了AbstractList类,实现了List, RandomAccess, Cloneable, ...

  9. loadrunner转码两种方式

    1.//使用转换函数将resp值做编码转换并存入msg lr_convert_string_encoding(“佛挡杀佛”),"utf-8",NULL,"msg" ...

  10. 运行python “没有那个文件或目录3” 或 “/usr/local/bin/python3^M: bad interpreter: 没有那个文件或目录” 错误

    原因 如果使用的是#!/usr/local/bin/python3这种方式,就会出现 “/usr/local/bin/python3^M: bad interpreter: 没有那个文件或目录” 错误 ...