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. oracle数据库,恢复到24小时内的数据

    因为更新的时候忘记添加条件,导致数据混乱. 用此方法,把数据恢复. --首先查询在某个时间点的数据 t_asn_dtl 为表名; SELECT * FROM t_asn_dtl AS OF TIMES ...

  2. mysql恢复备份数据时,部分表数据丢失的问题

    原因:是由于默认的通信缓冲区的最大长度为50M(max_allowed_packed). 处理办法: //查看当前max_allowed_packet的大小 show global variables ...

  3. Exp6 信息搜集与漏洞扫描 20164303

    一.实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 二.实践内容. (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.OS及服务版本探测. ...

  4. day 07

    # 数据类型的相互转化# 字符编码# 文件操作 # 1.哪些类型可以转化为数字# res = int('10')# print(res)# res = int('-3')# print(res)# r ...

  5. 读 vue 源码一 (为什么this.message能够访问data里面的message)

    12月离职后,打算在年后再找工作了,最近陆陆续续的看了黄轶老师的vue源码解析,趁着还有几天过年时间记录一下. 目标:vue如何实现通过this.key,就能直接访问data,props,method ...

  6. TreeMap,HashMap,LinkedHashMap区别,很简单解释

    TreeMap,HashMap,LinkedHashMap之间的区别和TreeSet,HashSet,LinkedHashSet之间的区别相似. TreeMap:内部排序. HashMap:无序. L ...

  7. iP私网地址

    私网地址范围:A类10.0.0.0~255.255.255 B类172.16.0.0~172.31.255.255 C类192.168.0.0~192.168.255.255

  8. flutter插件汇总2

    作者:知乎用户链接:https://www.zhihu.com/question/307594373/answer/568969429来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  9. 使用卷积神经网络CNN完成验证码识别

    gen_sample_by_captcha.py 生成验证码图片 # -*- coding: UTF-8 -*- """ 使用captcha lib生成验证码(前提:pi ...

  10. Windows 7环境下网站性能测试小工具 Apache Bench 和 Webbench使用和下载

    1.简要说明: Apache Bench 是Apache的网站性能测试小程序,Windows平台下的程序名简称ab.exe,要想获得这个80k的可执行程序,用户需要下载整个Apache Httpd软件 ...