也不说废话,直接干
上一篇 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署 中安装了 FastDFS 后,并配置启动了 Tracker 和 Storage 服务,已经可以上传文件了,但是我没有上传测试,因为上传成功我看不了,所以,需要配合 Nginx 来进行文件的上传下载,这一篇就安装 Nginx 以及结合 fastdfs-nginx-module 模块使用。
一、安装 Nginx 和 fastdfs-nginx-module
安装 Nginx 请看:从零开始学 Java - CentOS 下安装 Nginx,其实我只想放这一句话。但想想我还是一步一步写详细吧。
1.下载 Nginx 和 fastdfs-nginx-module ,这里是通过wget
下载(我喜欢这种方式)。
wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip
2.解压 fastdfs-nginx-module ,记着这时候别用tar
解压了,因为是 .zip
文件,正确命令:
unzip master.zip
3.配置 nginx 安装,加入fastdfs-nginx-module
模块。这是和普通 Nginx 安装不一样的地方,因为加载了模块。
./configure --add-module=../fastdfs-nginx-module-master/src/
但是,万万没想到,报错啦!有些文件显示not found
错误。更多看下图,都是错误:
比如这些gcc、PCRE
这些没找到,说明我们服务器并未安装,所以,我们进行下安装即可了,我在 从零开始学 Java - CentOS 下安装 Nginx 有gcc、 PCRE pcre-devel、 zlib、 OpenSSL
的安装命令,都安装一下之后我们再次进行 Nginx 的安装,显示下面的界面就是安装成功啦!
这时候,我们可以看一下 Nginx 下安装成功的版本及模块,命令:
/usr/local/nginx/sbin/nginx -V
二、配置 fastdfs-nginx-module 和 Nginx
1.配置mod-fastdfs.conf
,并拷贝到/etc/fdfs
文件目录下。
cd /software/fastdfs-nginx-module-master/src/
vim mod_fastdfs.conf
cp mod_fastdfs.conf /etc/fdfs
修改mod-fastdfs.conf
配置只需要修改我标注的这三个地方就行了,其他不需要也不建议改变。
# FastDFS tracker_server can ocur more than once, and tracker_server format is
# "host:port", host can be hostname or ip address
# valid only when load_fdfs_parameters_from_tracker is true
tracker_server=192.168.198.129:22122
# if the url / uri including the group name
# set to false when uri like /M00/00/00/xxx
# set to true when uri like ${group_name}/M00/00/00/xxx, such as group1/M00/xxx
# default value is false
url_have_group_name = true
# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
# must same as storage.conf
store_path0=/data/fastdfs/storage
#store_path1=/home/yuqing/fastdfs1
接着我们需要把fastdfs-5.05
下面的配置中还没有存在/etc/fdfs
中的拷贝进去
cd /software/fastdfs-5.05/conf
cp anti-steal.jpg http.conf mime.types /etc/fdfs/
2.配置 Nginx。编辑nginx.conf
文件:
cd /usr/local/nginx/conf
vi nginx.conf
在配置文件中加入:
location /group1/M00 {
root /data/fastdfs/storage/;
ngx_fastdfs_module;
}
由于我们配置了group1/M00
的访问,我们需要建立一个group1
文件夹,并建立M00到data
的软链接。
mkdir /data/fastdfs/storage/data/group1
ln -s /data/fastdfs/storage/data /data/fastdfs/storage/data/group1/M00
启动 Nginx ,会打印出fastdfs模块的pid,看看日志是否报错,正常不会报错的
/usr/local/nginx/sbin/nginx
打开浏览器,访问一下发现并不能访问,也并没有报错,但显示如下画面。糟糕了,怎么办?对了,我好像没关闭防火墙。
开放80端口
访问权限。在iptables
中加入重启就行,或者你直接关闭防火墙,本地测试环境可以这么干,但到线上万万不能关闭防火墙的。
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
重启防火墙,使设置生效:
service iptables restart
再次刷新浏览器,可以看到如下画面,说明我们 Nginx 结合 fastdfs-nginx-module 模块安装并配置成功啦!
我最后说一下怎么在已经安装过 Nginx 的服务器上安装配置 fastdfs-nginx-module 模块? 因为,一般我们线上服务器都是已经安装过 Nginx 的,所以这个时候,我们就直接进入 Nginx 的存放目录,进行配置后编译,就不需要执行最后安装make install
这一步了,接着重启就行了。
上传测试
完成上面的步骤后,我们已经安装配置完成了全部工作,接下来就是测试了。因为执行文件全部在/usr/bin
目录下,我们切换到这里,并新建一个test.txt
文件,随便写一点什么,我写了This is a test file. by:mafly
这句话在里边。然后测试上传:
cd /usr/bin
vim test.txt
fdfs_test /etc/fdfs/client.conf upload test.txt
很不幸,并没有成功,报错了。
ERROR - file: shared_func.c, line: 960, open file /etc/fdfs/client.conf fail, errno: 2, error info: No such file or directory
ERROR - file: ../client/client_func.c, line: 402, load conf file "/etc/fdfs/client.conf" fail, ret code: 2
一般什么事情第一次都不是很顺利,这很正常,通过错误提示我看到,好像没有找到client.conf
这个文件,现在想起来的确没有配置这个文件,那我们现在去配置一下图中的两个参数:
cd /etc/fdfs
cp client.conf.sample client.conf
vim client.conf
怎么还依然报错阿???
upload file fail, error no: 2, error info: No such file or directory
哈哈,你是不是测试上传命令中要上传的test.txt
文件路径有问题,嗯,那我改一下命令:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/bin/test.txt
成功啦!!! 返回文件信息及上传后的文件 HTTP 地址,你打开浏览器访问一下试试
总结一下
这篇文章一步一步的讲了通过 Nginx 结合fastdfs-nginx-module
模块来进行上传测试及下载工作,当然这也需要结合上一篇 Tracker 和 Storage 服务来进行,这算是整体进行了 FastDFS 的安装与配置,分布式的配置也几乎和这没差别,只不过是增加了不同组和多台服务器,有机会希望你亲自试试。
可能接下来,我会结合项目中实际使用再写一下关于 FastDFS 的一些使用感受吧,可能是怎样搭建一个近乎商用的文件系统,上传下载分享好用到爆,好吧,我又吹牛了。接下来其实还有更多关于文件的工作,比如防盗链、图片切图、视频处理等等。
哈哈,先这样吧。
分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试的更多相关文章
-
FastDFS 配置 Nginx 模块,并实现分布式同步-Linux
1.搭建虚拟机 a.复制虚拟机文件 首先复制我们之前安装好的fastdfs虚拟机,因为我们现在要设置它的IP为21,改名为CentOS-fastdfs - 21. b.设置网络 生成新的MAC地址 设 ...
-
FastDFS 配置 Nginx 模块及访问测试
#备注:以下nginx-1.10.3源码目录根据nginx版本号不同会有相应的变化,以nginx版本号为准#一.安装 Nginx 和 fastdfs-nginx-module1,安装 Nginx 请看 ...
-
CentOS上安装分布式文件系统FastDFS &; 配置和问题解决
原文:https://my.oschina.net/wangmengjun/blog/1142982 什么是FastDFS? FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件 ...
-
分布式文件系统 - FastDFS 在 CentOS 下配置安装部署
少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...
-
【架构设计】分布式文件系统 FastDFS的原理和安装使用
本文地址 分享提纲: 1.概述 2. 原理 3. 安装 4. 使用 5. 参考文档 1. 概述 1.1)[常见文件系统] Google了一下,流行的开源分布式文件系统有很多,介绍如下: -- mo ...
-
分布式文件系统 - FastDFS 简单了解一下
别问我在哪里 也许我早已不是我自己,别问我在哪里,我一直在这里. 突然不知道说些什么了... 初识 FastDFS 记得那是我刚毕业后进入的第一家公司,一个技术小白进入到当时的项目组后,在开发中上传用 ...
-
分布式文件系统 - FastDFS
分布式文件系统 - FastDFS 别问我在哪里 也许我早已不是我自己,别问我在哪里,我一直在这里. 突然不知道说些什么了... 初识 FastDFS 记得那是我刚毕业后进入的第一家公司,一个技术小白 ...
-
分布式文件系统 FastDFS 5.0.5 &; Linux CentOS 7 安装配置(单点安装)——第一篇
分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)--第一篇 简介 首先简单了解一下基础概念,FastDFS是一个开源的轻量级分布式文件系统,由 ...
-
高可用高性能分布式文件系统FastDFS进阶keepalived+nginx对多tracker进行高可用热备
在上一篇 分布式文件系统FastDFS如何做到高可用 中已经介绍了FastDFS的原理和怎么搭建一个简单的高可用的分布式文件系统及怎么访问. 高可用是实现了,但由于我们只设置了一个group,如果现在 ...
随机推荐
-
viewport 详解
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale= ...
-
技术英文单词贴--S
S separator 分离,隔离器 shortcut 快捷方式,捷径 sort 排序 special 特殊的,专用的 specified 规定的,详细说明,指定 specify 指定,明确提出,详细 ...
-
ServiceStack.OrmLite 调用存储过程
最近在做关于ServiceStack.OrmLite调用存储过程时,有问题.发现ServiceStack.OrmLite不能调用存储过程,或者说不能实现我想要的需求.在做分页查询时,我需要传入参数传出 ...
-
rabbitMQ安装及部署
1.安装 rpm -ivh erlang-18.3-1.el6.x86_64.rpm, 下载地址:http://www.rabbitmq.com/releases/erlang/ rpm --impo ...
-
Exception in thread ";main"; java.lang.NoClassDefFoundError: com/google/common/collect/Maps
加入jar包 http://jarfiles.pandaidea.com/google.collect.html google-collect-1.0.jar.zip ( 504.8 KB )
-
1002 Fire Net
用递归实现各种情况的枚举,可以看做是考察DPS的简单实现. #include <stdio.h> ][]; int place(int x,int y){ int i; ;i--){ ) ...
-
【Java线程】Lock、Condition
http://www.infoq.com/cn/articles/java-memory-model-5 深入理解Java内存模型(五)——锁 http://www.ibm.com/develope ...
-
UVALive - 4670 Dominating Patterns AC 自动机
input n 1<=n<=150 word1 word2 ... wordn 1<=len(wirdi)<=70 s 1<=len(s)<=1000000 out ...
-
如何获得keyhash
keyhash是由keystore产生的 三个命令解决问题 keytool -exportcert -alias androiddebugkey -keystore debug.keystore &g ...
-
redi安装
借鉴文章:https://segmentfault.com/a/1190000010709337 在linux中使用wget时,若报-bash: wget: command not found,则表明 ...