Fastdfs与nginx

介绍

一、FastDFS简要介绍
在这里插入图片描述1.是什么

FastDFS就是一种轻量级的、常用的分布式文件系统,通常用作图片服务器。
2.两个部分都是干什么的

FastDFS分为两个部分,Tracker和Storage。

Tracker作为协调者,用户上传和下载文件都要通过tracker。

Storage是存储节点,主要用来存储文件。storage可以分成多个组,每个组有若干个节点,这些节点放的文件都是一样的。各个组存放的文件都是不一样的。所以,如果想扩充FastDFS的容量,非常方便,直接添加组就行了。

3.用户上传和下载文件的具体过程
文件上传过程:
在这里插入图片描述
文件下载过程
在这里插入图片描述二、FastDFS和Nginx结合使用
1.对tracker做负载均衡

为了承载更高的并发量,tracker可以做成集群。需要使用nginx做负载均衡。
2.nginx插件fastdfs-nginx-module的作用

FastDFS通过Tracker服务器,将文件放在某个Storage服务器存储,但是同组Storage存储服务器之间需要进入文件复制,有同步延迟的问题。

假设Tracker服务器将文件上传到了Storage Server 11,上传成功后文件ID已经返回给客户端。此时FastDFS存储集群机制会将这个文件同步到同组存储Storage Server 12,在文件还没有复制完成的情况下,客户端如果用这个文件ID在Storage Server 12上取文件,就会出现文件无法访问的错误。 (Storage Server 11和Storage Server 12是同一个storage组)

而fastdfs-nginx-module可以重定向文件连接到文件上传时的源服务器(Storage Server 11)取文件,避免客户端由于复制延迟导致的文件无法访问错误 。

Fastdfs的nginx模块安装

一、安装fastdfs-nginx-module

  1. 解压缩 nginx-1.8.1.tar.gz
  2. 解压缩 fastdfs-nginx-module-master.zip
  3. 进入nginx-1.8.1目录中
  4. 执行
 sudo ./configure --prefix=/usr/local/nginx/ --add-module=fastdfs-nginxmodule-master的解压后的目录的绝对路径/src

5.下载缺少的库

sudo apt-get install libpcre3 libpcre3-dev

出现缺少 zlib包情况

./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.

安装教程:

1.找一个临时目录,下载命令:wget http://www.zlib.net/zlib-1.2.11.tar.gz(2年没更新了,估计这个是最终版了,官网)

2.解压命令:tar -xzvf zlib-1.2.11.tar.gz

3.进入当前文件夹:cd zlib-1.2.11

4.安装命令:

./configure
make
make install

6.然后进入nginx-1.8.1目录中,再次执行:

sudo ./configure --prefix=/usr/local/nginx/ --add-module=fastdfsnginx-module-master解压后的目录的绝对路径/src

然后编译:

sudo make

报错:
在这里插入图片描述解决方法:
找到objs目录下的Makefile
vim Makefile
删掉里面的-Werror(如果没有修改权限,修改一下这个文件的权限, chmod 777 Makefile )
在这里插入图片描述
7.然后回到nginx-1.8.1目录中
执行完成后继续执行sudo make
编译nginx时struct crypt_data’没有名为‘current_salt’的成员:cd.current_salt[0] = ~salt[0];的解决方案
在这里插入图片描述这里提示我们struct crypt_data’没有名为‘current_salt’的成员:cd.current_salt[0] = ~salt[0];
最好的办法是换一个版本,因为条件限制,我们就进到源码里把这行直接注释掉好了。
[root@iZgt88z6l1kvd7Z nginx-1.10.1]# vim src/os/unix/ngx_user.c
在这里插入图片描述
执行完成后继续执行sudo make
执行sudo make install

  1. sudo cp fastdfs-nginx-module-master解压后的目录中src下mod_fastdfs.conf
    /etc/fdfs/mod_fastdfs.con

  2. sudo vim /etc/fdfs/mod_fastdfs.conf
    修改内容:

connect_timeout=10
tracker_server=自己ubuntu虚拟机的ip地址:22122
url_have_group_name=true
store_path0=/home/itcast/fastdfs/storage
  1. sudo cp 解压缩的fastdfs-master目录中的conf中的http.conf /etc/fdfs/http.conf
    11.sudo cp 解压缩的fastdfs-master目录中conf的mime.types /etc/fdfs/mime.types
  2. sudo vim /usr/local/nginx/conf/nginx.conf
    在http部分中添加配置信息如下:
    在这里插入图片描述
    13.启动nginx
    sudo /usr/local/nginx/sbin/nginx
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值