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. Git 爬坑路(从小白开始入门) ——(1)

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

  2. linux 常用命令 和 nginx(反响代理、负载均衡)安装和配置

    (1)linux常用命令 [1]在光标前输入内容:i [2]删除输入方式下所输入的文本:Ctrl+u  [3]文件保存退出:wq [4]文件不保存退出:q [5]文件强制退出:q! [6]常规删除文件 ...

  3. 如何在Qt中使用自定义数据类型

    这里我们使用下面这个struct来做说明(这里不管是struct还是class都一样): struct Player { int number; QString firstName; QString ...

  4. FairyGUI TextField

    记录一个在使用FairyGUI的TextField时遇到的坑. TextField有一个文本模板功能,可以实现类似占位符的功能,如:{ number = 0 },然后我们可以在脚本中修改number的 ...

  5. 【题解】Luogu P4867 Gty的二逼妹子序列

    原题传送门 同Luogu P4396 [AHOI2013]作业 询问多了10倍,但还能跑过(smog #include <bits/stdc++.h> #define N 100005 # ...

  6. 升级python2.7, 实现python2.7与python3并存

    由于用到twilio模块, 所以需要升级一下python2, 但是又不想舍弃python2, 于是实现了简单的方法 python 先扔一块依赖 yum install zlib-devel bzip2 ...

  7. Developing Vert.x Modules using the Standard Project

    The module The tests Unit tests Integration tests Java integration tests JavaScript integration test ...

  8. linux启动httpd服务出现 Could not reliably determine the server`s fully qualified domain name.

    安装好apache启动httpd服务时,出现httpd: Could not reliably determine the server's fully qualified domain name,  ...

  9. Git 与 GitHub 简介

    Git 与 GitHub 的来历 Linux 之父 Linus 在 1991 年创建开源的 Linux 操作系统之后,多年来依靠全世界广大热心志愿者的共同建设,经过长足发展,现已成为世界上最大的服务器 ...

  10. C#异常重试通用类Retry

    //Retry机制 public static class Retry { /// <summary> /// 重试零个参数无返回值的方法 /// </summary> /// ...