FastDFS 与 Nginx 实现分布式图片服务器
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 实现分布式图片服务器的更多相关文章
- centos6.5安装配置fastdfs+nginx实现分布式图片服务器
一.准备 yum groupinstall -y "Development Tools"yum install -y wget libevent-devel pcre-devel ...
- FastDFS分布式图片服务器搭建
一:Fastdfs简介 1. 什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制, 充分考虑了冗余备份.负载均衡.线性扩容等机制,并注 ...
- 使用rsync+inotify+apache做分布式图片服务器的部署方法
图片服务器一般是做成分布式的,但要使得所有的图片服务器的文件一致,可以由一个主服务器将文件推送到各个备份服务器上. rsync:文件差异检查及文件推送 inotify:事件触发,实时检测到添加.删除. ...
- nginx+ftp搭建图片服务器(Windows Server服务器环境下)
几种图片服务器的对比 1.直接使用ftp服务器,访问图片路径为 ftp://账户:密码@192.168.0.106/31275-105.jpg 不采用这种方式,不安全容易暴露ftp账户信息 2.直接使 ...
- 转:Linux下使用Nginx搭建简单图片服务器
最近经常有人问图片上传怎么做,有哪些方案做比较好,也看到过有关于上传图片的做法,但是都不是最好的,今天再这里简单讲一下Nginx实现上传图片以及图片服务器的大致理念. 如果是个人项目或者企业小项目,仅 ...
- Nginx发布静态图片服务器
vir-hosts.conf内容 server { listen ; server_name _; location ~ .*\.(gif|jpg|jpeg|png)$ { expires 24h; ...
- windows版nginx+ftp实现图片服务器的搭建
配置图片服务器的一部分参数 resource.properties: #FTP\u76f8\u5173\u914d\u7f6e #FTP\u7684ip\u5730\u5740 FTP_ADDRESS ...
- 分布式图片服务器FastDFS
1. 什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使 ...
- Nginx+Nodejs搭建图片服务器
图片上传请求由Node处理,图片访问请求由Nginx处理. 1.Nginx配置 #user nobody; worker_processes 1; #error_log logs/error.log; ...
随机推荐
- 论文笔记【四】Semi-supervised Word Sense Disambiguation with Neural Models
基于神经模型的半监督词义消歧 Dayu Yuan Julian Richardson Ryan Doherty Colin Evans Eric Altendorf Google, Mount ...
- 58 字体反爬攻略 python3
1.下载安装包 pip install fontTools 2.下载查看工具FontCreator 百度后一路傻瓜式安装即可 3.反爬虫机制 网页上看见的 后台源代码里面的 从上面可以看出,生这个字变 ...
- 我的web前端整理和学习
知识点收藏:(边看.边记录.边写) 开直播学习:虎牙 待办事理>> 练习自我表达(把文章做成视频).技术学习总结(博客与公众号).跳出舒适圈. 前端知识体系:https://www.cnb ...
- Parallels Desktop 14.1.3中文版win系统安装教程
parallels desktop 14 中文版(pd虚拟机)是mac上最强大也是最好用的虚拟机软件,本站第一时间为大家带来这款parallels desktop 14 破解版,最新版本的parall ...
- day07数据类型的相互转化,字符编码
复习 ''' 1.深浅拷贝 ls = [1, 'a', [10]] 值拷贝:直接赋值 ls1 = ls, ls中的任何值发生改变,ls1中的值都会随之改变 浅拷贝:通过copy()方法 ls2 = l ...
- mpvue小程序开发tips(1)
wx.setStorageSync('vipId',vipId)-----存储 wx.getStorageSync('vipId')-------读取 wx.navigateTo({ url: ...
- Redis Index
Indexes 集群 主从模型 哨兵机制与RAFT算法 实践 单机多实例 开启Sentinel 存储 持久化 RDB 与 AOF 数据结构 内存管理 事务 并发问题 分布式锁 整体图 中间件 Jedi ...
- 基于SVD的图像压缩
算法简介 算法实现 我只是简单处理了一下图像的灰度值,如果要处理RGB值的话,就需要分别进行SVD分解,最后再合起来即可. import numpy as np from PIL import Ima ...
- LEETCODE 07 09
最近忙着面试耽误了几天,今天刷了07,09都是字符串处理,一个是大数反转,一个是回文数判断,我都是转成字符串处理的,过了是过了,但是挺慢的,先记着,等有机会优化下 题目 给定一个 32 位有符号整数, ...
- 一梦江湖费六年——QQ群聊天分析
本文结构: 一.那些年我们加过的QQ群 二.数据读入和整理(一)--来自蓝翔的挖掘机 二.数据读入和整理(二)--你不知道的事 三.聊天宏观(1)--寤寐思服 三.聊天宏观(2)日月篇 三.聊天宏观( ...