FastDFS搭建(linux)

        分布式文件系统fastdfs系统搭建

 

本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上搜索到的 Google Code 的 V4.06 或更低版本不一样。

安装环境:

     分布式文件系统 - FastDFS 在 CentOS 下配置安装部署

安装 libfastcommon 和 FastDFS

1.下载安装 libfastcommon ,这里是通过wget下载(我喜欢这种方式)。

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz

解压 libfastcommon,命令:

tar -zxvf V1.0.7.tar.gz

编译,进入libfastcommon-1.0.7目录,命令:

cd libfastcommon-1.0.7

./make.sh

 

安装,命令:

./make.sh install

 

显示这样的画面,就是安装 libfastcommon 成功啦。

2.下载安装 FastDFS,这里也是通过wget下载。

wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

解压 FastDFS ,命令:

tar -zxvf V5.05.tar.gz

编译,进入fastfds-5.05目录,命令:

cd fastdfs-5.05

./make.sh

安装,命令:

./make.sh install

 

显示这样的画面,就是安装 FastDFS 成功啦。

配置 Tracker 服务

上述安装成功后,在/etc/目录下会有一个fdfs的目录,进入它。会看到三个.sample后缀的文件,这是作者给我们的示例文件,我们需要把其中的tracker.conf.sample文件改为tracker.conf配置文件并修改它。看命令:

cp tracker.conf.sample tracker.conf

vim tracker.conf

 

打开tracker.conf文件,只需要找到你只需要该这两个参数就可以了。

# the base path to store data and log files

base_path=/data/fastdfs

 

# HTTP port on this tracker server

http.server_port=80

 

当然前提是你要有或先创建了/data/fastdfs目录。port=22122这个端口参数不建议

Mkdir /data/fastdfs -p

修改,除非你已经占用它了。
修改完成保存并退出 vim ,这时候我们可以使用

/usr/bin/fdfs_trackerd  /etc/fdfs/tracker.conf start

来启动 Tracker服务,但是这个命令不够优雅,怎么做呢?

使用ln -s 建立软链接:

ln -s /usr/bin/fdfs_trackerd /usr/local/bin

ln -s /usr/bin/stop.sh /usr/local/bin

ln -s /usr/bin/restart.sh /usr/local/bin

 

 

这时候我们就可以使用service fdfs_trackerd start来优雅地启动 Tracker服务了,是不是比刚才带目录的命令好记太多了(懒是社会生产力)。你也可以启动过服务看一下端口是否在监听,命令:

执行命令启动服务:

 

启动服务:service fdfs_trackerd start

查看监听:netstat -unltp|grep fdfs

 

看到22122端口正常被监听后,这时候就算 Tracker服务安装成功啦!

 

配置 Storage 服务

现在开始配置 Storage 服务,由于我这是单机器测试,你把 Storage 服务放在多台服务器也是可以的,它有 Group(组)的概念,同一组内服务器互备同步,这里不再演示。直接开始配置,依然是进入/etc/fdfs的目录操作,首先进入它。会看到三个.sample后缀的文件,我们需要把其中的storage.conf.sample文件改为storage.conf配置文件并修改它。还看命令:

cp storage.conf.sample storage.conf

vim storage.conf

打开storage.conf文件后,找到这两个参数进行修改:

# the base path to store data and log files

base_path=/data/fastdfs/storage    #保存日志目录

 

# store_path#, based 0, if store_path0 not exists, it's value is base_path

# the paths must be exist

store_path0=/data/fastdfs/storage/data1     # 存储路径

store_path1=/data/fastdfs/storage/data2

store_path2=/data/fastdfs/storage/data3

store_path3=/data/fastdfs/storage/data4

#store_path1=/home/yuqing/fastdfs2

 

# tracker_server can ocur more than once, and tracker_server format is

#  "host:port", host can be hostname or ip address

tracker_server=192.168.1.183:22122    #tracker服务器的IP地址以及端口号

当然你的/fastdfs目录下要有storage文件夹,没有就创建一个,不然会报错的,日志以及文件都会在这个下面,启动时候会自动生成许多文件夹。stroage的port=23000这个端口参数也不建议修改,默认就好,除非你已经占用它了。

Mkdir –p /data/fastdfs/storage
修改完成保存并退出 vim ,这时候我们依然想优雅地启动 Storage服务,带目录的命令不够优雅,这里还是使用ln -s 建立软链接:

ln -s /usr/bin/fdfs_storaged /usr/local/bin

执行命令启动服务:

service fdfs_storaged start

netstat -unltp|grep fdfs

 

很好,22122 和 23000端口都在监听了,这个时候你去/data/fastdfs/storage文件夹下看的话,会出现一大堆文件夹,而且进去还有一大堆,哈哈,这就是存放文件的

检测

应该是完成了。我们安装配置并启动了 Tracker 和 Storage 服务,也没有报错了。那他俩是不是在通信呢?我们可以监视一下:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

看到我红线处ACTIVE这样就 ok 啦!

其实这个时候你就可以进行上传测试了,但可能会下载不了,所以,我们把成功的喜悦留在下一篇吧。

Nginx上传测试

 

2016-11-08 23:17:33

一、安装 Nginx 和 fastdfs-nginx-module

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

yum -y install pcre pcre-devel  
yum -y install zlib zlib-devel  
yum -y install openssl openssl-devel

2.解压 fastdfs-nginx-module ,记着这时候别用tar解压了,因为是 .zip 文件,正确命令:unzip master.zip

3.配置 nginx 安装,加入fastdfs-nginx-module模块。这是和普通 Nginx 安装不一样的地方,因为加载了模块。

 ./configure --add-module=../fastdfs-nginx-module-master/src/

 

安装命令,都安装一下之后我们再次进行 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.1.183:22122    #tracker服务器地址及端口
·          
·         # 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    #文件 url 中是否有 group 名
·          
·         # 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

 

刷新浏览器,可以看到如下画面,说明我们 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 libfastcommon-1.0.7.tar.gz

 

其中有两个需要注意的group_name和remote_filename,这个在我们后面的文件下载需要用到

group_name=group1, remote_filename=M00/02/32/CgAUD1s6716ATKtBAAMd3jd5Lxc105.png

成功, 返回文件信息及上传后的文件 HTTP 地址。

查看是否在通信:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

 

参考博客:

http://www.cnblogs.com/mafly/p/fastdfs_conf.html

http://blog.mayongfa.cn/193.html

 

猜你喜欢

转载自www.cnblogs.com/guarderming/p/10210010.html
今日推荐