CentOS 6.5下 FastDFS结合Nginx插件实现图片http访问
来源:互联网 发布:zeppelin 修改端口 编辑:程序博客网 时间:2024/06/05 23:55
接着上一篇讲,在上一篇中,我们成功搭建了FastDFS,并分别配置和启动了tracker(调度器)服务以及storage(数据存储器)服务,当然,配置相当简洁,只配置了日志和图片存放的路径以及tracker server的IP地址等,磁盘我们只模拟了一个,因此Storage.conf配置中只有一个store_path0,且storage的配置group_name我们也用了默认的group1,因为我们自己模拟的时候只有一台虚拟机,条件有限,但是在现实中,Storage server可能是一个集群,因此,配置还可以更复杂,但是不难;最后,我们利用FastDFS安装时自带的客户端测试工具fdfs_test测试了一下图片的upload,测试之前,仍需要修改配置文件,因为,我们要指定与其对应的配置文件client.conf中的tracker服务的IP,作为调度中心节点,这个一定不能忘,注意一个地方,如果你的Linux是32位的,那么,FastDFS的客户端连接包libfdfsclient.so,默认安装是在/home/lib64目录下面的,之前我们拷贝过一个common包,这个时候,需要将libfdfsclient.so包也拷贝到lib目录下。
如果你的Linux是64位的,那么你就不管考虑了。
经过上一篇的实战,我想,下面一张图,现在,你一定能明白个八九了
本篇,我们将实现http服务,访问FastDFS系统中的Storage server存储的图片,因为FastDFS的HTTP服务较为简单,无法提供负载均衡等高性能的服务,所以FastDFS的开发者——淘宝的架构师余庆同学,为我们提供了Nginx上使用的FastDFS模块(也可以叫FastDFS的Nginx模块)。其使用非常简单。
FastDFS的Nginx模块如下(上一篇中,我们只是上传了这个源码包,但是没有进行后续的操作)
源码包和完整安装word文档,在我的资源里下载(无法0分共享,最少就是1分,没办法)--->FastDFS相关资料下载
一、解压 fastdfs-nginx-module_v1.16.tar.gz
二、修改fastdfs-nginx-module的config配置文件
vim /src/config 如下
我们看一下,引用的地址,实际是在哪个目录下面的(common和clinet就不用说了吧,这两个肯定在/usr/lib64目录下面,所以上面的libs引用的路径根据自己的Linux系统而定,32位的就是 /usr/lib -lfastcommon -lfdfsclient ,64位的就改成/usr/lib64 -lfastcommon -lfdfsclient )
ls -l|grep 'fast*'
使用 ls 搭配正则搜索,在include目录下列出 fast*开头的目录,然后就是 图上的两个 fastcommon 和 fastdfs,因此,fastdfs-nginx-module的config需要修改,修改两处,一个是去掉引用路径中的所有local,一个就是将lib改成lib64(如果是32位Linux,不用改)----->fastcommon和fastdfs目录下放的是c语言的头文件.h文件
修改后,我们保存一下,然后我们还要做一件事情,就是把src目录下的,fastdfs模块的配置文件mod_fastdfs.conf拷贝到FastDFS的配置目录/etc/fdfs/目录下,便于集中管理
cp mod_fastdfs.conf /etc/fdfs/
我们稍后,装完Nginx后,在配置/etc/fdfs/mod_fastdfs.conf
三、安装Nginx,添加fastdfs-nginx-module模块目录
3.1 解压 nginx-1.13.5.targz
tar -zxf nginx-1.13.5.tar.gz (带参数v,将输出解压过程的信息)
进入nginx-1.13.5目录执行configure命令之前,我们先为我们的nginx在/var目录下,创建一个临时目录 temp/nginx
mkdir -p temp/nginx ------>-p参数,保证父目录不存在的情况下,先创建父目录,然后再创建子目录
切换到nginx-1.13.5目录,执行configure命令
./configure \--prefix=/usr/local/nginx \--pid-path=/var/run/nginx/nginx.pid \--lock-path=/var/lock/nginx.lock \--error-log-path=/var/log/nginx/error.log \--http-log-path=/var/log/nginx/access.log \--with-http_gzip_static_module \--http-client-body-temp-path=/var/temp/nginx/client \--http-proxy-temp-path=/var/temp/nginx/proxy \--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \--http-scgi-temp-path=/var/temp/nginx/scgi \--add-module=/root/fastdfs-nginx-module/src
回车执行--->
报错,好吧,我忘了自己的Linux系统当前是没有下载和安装Nginx依赖包的,(为了装FastDFS,换了一个纯净版的Linux64系统)
Nginx依赖包下载安装,看我的博文 ----->nginx依赖包安装
走一遍,安装(安装过的可以忽略)
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
然后,我们再来一遍 configure
回车后,configure命令成功
然后就是 make 编译C源码,唰唰唰,make完成后,进行install安装
至此,Nginx安装完成
四、配置 /etc/fdfs/mod_fastdfs.conf
切换到,/etc/fdfs 目录下
vim mod_fastdfs.conf
第一个地方
base_path = /home/fastdfs/nginx-module
我们在/home/fastdfs/目录下,创建一个nginx-module的目录
第二个地方
我的本机tracker 服务IP是 192.168.xxx.xxx
tracker_server=192.168.153.134:22122
第三个地方
我的Storage server存放图片的路径(只有一个磁盘)在: /home/fastdfs/storage 目录下
store_path0=/home/fastdfs/storage
第四个地方
url_have_group_name = true
改后,退出保存!
五、配置Nginx的server节点,实现与storage server 对接
切换到Nginx的安装目录,/usr/local/nginx
修改 conf目录下的nginx.conf配置文件,对原有的server节点修改如下:
server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location /group1/M00/ { #root 这里直接调用fastdfs的nginx插件,定位到/home/fastdfs/storage/data; #安装nginx的时候,已经为其添加了一个module,指向/root/fastdfs-nginx-module/src ngx_fastdfs_module; } }
修改后,保存nginx.conf,并启动nginx
切换到 cd /usr/local/nginx 目录
启动 ./sbin/nginx,我们可以看到,启动的时候,fastdfs的nginx的插件也启动了(多了一个进程);
我们需要设置一下Linux系统的防火墙,开放一个80端口(这样,外部才能访问80端口)
vim /etc/sysconfig/iptables
增加如下内容
保持并退出,重启防火墙
/etc/init.d/iptables restart
然后,我们外部访问一下nginx服务,是否正常
ok,一切顺利,下面上让人打鸡血的部分
六、利用Nginx的Http服务,实现,FastDFS的storage server存储的图片url地址访问
先来一张图片,放到 /root/FastDFS 目录下,我们不用原来的广告图片,放一张美女的图片养养眼
6.1 启动 tracker和storage服务
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
FastDFS的搭建和配置看我的上一篇文章---->FastDFS的搭建以及tracker和storage的配置
6.2 利用FastDFS自带的客户端工具实现图片 1.jpg的上传
/usr/bin/fdfs_test /etc/fdfs/client.conf upload 1.jpg
上传后得到文件 url地址:example file url: http://192.168.153.134/group1/M00/00/00/wKiZhlnAq6mAECKrAAG6VRTd3uw792.jpg
文件名解析(storage server根据特定信息 自动生成):
192.168.153.134: nginx服务器的IP
group1:storage组名称(目前模拟的只有一台虚拟机,一个storage server,因此组名只有一个)
M00 :storage存储的磁盘,目前只有一个--->store_path0,两个的话,增加一个store_path1 --> M01,store_path2 --> M02....
00/00 : 数据两级目录,在storage的data目录下,里面存放文件
wKiZhlnAq6mAECKrAAG6VRTd3uw792.jpg:加密后的文件名,最开始的图片名是1.jpg
拿到这个地址,在外部浏览器中访问一下
ok了,利用fastdfs的nginx插件,再通过配置插件的conf和利用nginx提供的http服务配置 server(一个server就是一个虚拟主机,server中使用插件模块),最终访问到了我们测试上传的图片,且,nginx具有高并发性和反向代理以及可以提供负载均衡,二者结合起来非常的完美,对于小文件的分布式存储,十分高效,且配置简单。
- CentOS 6.5下 FastDFS结合Nginx插件实现图片http访问
- FastDFS加载fastdfs-nginx-module模块,实现HTTP访问
- centos下安装nginx搭配fastdfs
- 【TaoTao】Nginx+FastDFS实现图片上传功能
- CentOS 6.5 FastDFS+nginx安装配置
- centOS 6.5 Nginx集成fastDFS模块
- centos安装FastDFS+Nginx
- CentOS安装FastDFS+Nginx
- centos安装FastDFS+Nginx
- FastDFS之nginx插件
- FastDFS为什么要结合Nginx
- nginx与fastdfs结合重点
- FastDFS为什么要结合Nginx?
- FastDFS为什么要结合Nginx?
- CentOS fastDFS结合nginx的配置以及php端的调用方法
- CentOS fastDFS结合nginx的配置以及php端的调用方法
- nginx下配置FastDFS
- CentOS下安装FastDFS
- 如何下载RPM及其依赖
- Excel更改引用方式在绝对引用与相对引用之间快速切换
- HDU4027 Can you answer these queries? (线段树)
- 你手机中的观察者模式
- Winform程序打包部署
- CentOS 6.5下 FastDFS结合Nginx插件实现图片http访问
- php算法
- 关于.NET编译的目标平台(AnyCPU,x86,x64)
- C++ 优缺点之我见
- DEFINING TABLE RECORD FORMATS IN HIVE
- 四、swift3.0函数的使用
- Android中判断网络是否连接(可用),不可用跳转设置网络连接
- Matlab学习笔记(5)——classify函数实现线性判别分析
- 计算一组向量相似度