Ubuntu18.04安装FastDFS和Nginx

Ubuntu18.04安装FastDFS和Nginx步骤

1.FastDFS


1.1.什么是分布式文件系统

分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。

通俗来讲:

  • 传统文件系统管理的文件就存储在本机。
  • 分布式文件系统管理的文件存储在很多机器,这些机器通过网络连接,要被统一管理。无论是上传或者访问文件,都需要通过管理中心来访问
1.2.什么是FastDFS

FastDFS是由淘宝的余庆先生所开发的一个轻量级、高性能的开源分布式文件系统。用纯C语言开发,功能丰富:

  • 文件存储
  • 文件同步
  • 文件访问(上传、下载)
  • 存取负载均衡
  • 在线扩容

适合有大容量存储需求的应用或系统。同类的分布式文件系统有谷歌的GFS、HDFS(Hadoop)、TFS(淘宝)等。

1.3.FastDFS的架构
1.3.1.架构图

Ubuntu18.04安装FastDFS和Nginx_第1张图片
FastDFS两个主要的角色:Tracker Server 和 Storage Server 。

  • Tracker Server:跟踪服务器,主要负责调度storage节点与client通信,在访问上起负载均衡的作用,和记录storage节点的运行状态,是连接client和storage节点的枢纽。
  • Storage Server:存储服务器,保存文件和文件的meta data(元数据),每个storage server会启动一个单独的线程主动向Tracker cluster中每个tracker server报告其状态信息,包括磁盘使用情况,文件同步情况及文件上传下载次数统计等信息
  • Group:文件组,多台Storage Server的集群。上传一个文件到同组内的一台机器上后,FastDFS会将该文件即时同步到同组内的其它所有机器上,起到备份的作用。不同组的服务器,保存的数据不同,而且相互独立,不进行通信。
  • Tracker Cluster:跟踪服务器的集群,有一组Tracker Server(跟踪服务器)组成。
  • Storage Cluster :存储集群,有多个Group组成。
1.3.2.上传和下载流程

上传
Ubuntu18.04安装FastDFS和Nginx_第2张图片

  1. Client通过Tracker server查找可用的Storage server。
  2. Tracker server向Client返回一台可用的Storage server的IP地址和端口号。
  3. Client直接通过Tracker server返回的IP地址和端口与其中一台Storage server建立连接并进行文件上传。
  4. 上传完成,Storage server返回Client一个文件ID,文件上传结束。

下载
Ubuntu18.04安装FastDFS和Nginx_第3张图片

  1. Client通过Tracker server查找要下载文件所在的的Storage server。
  2. Tracker server向Client返回包含指定文件的某个Storage server的IP地址和端口号。
  3. Client直接通过Tracker server返回的IP地址和端口与其中一台Storage server建立连接并指定要下载文件。
  4. 下载文件成功。

将资料中的文件上传到linux下的/home/liu/fdfs目录:
Ubuntu18.04安装FastDFS和Nginx_第4张图片

安装步骤

2. 安装FastDFS依赖包

  1. 解压缩libfastcommon-master.zip
  2. 进入到libfastcommon-master的目录中
  3. chmod 776 ./make.sh # 776代表权限设置
  4. ./make.sh
  5. sudo ./make.sh install

3. 安装FastDFS

  1. 解压缩fastdfs-master.zip
  2. 进入到 fastdfs-master目录中
  3. chmod 776 ./make.sh # 776代表权限设置
  4. ./make.sh
  5. sudo ./make.sh install

4. 配置跟踪服务器tracker

  1. sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
  2. 在/home/liu/目录中创建目录 fastdfs/tracker
    sudo mkdir -p /home/liu/fastdfs/tracker # -p的横杠要注意格式
  3. 编辑/etc/fdfs/tracker.conf配置文件——sudo vim /etc/fdfs/tracker.conf
    修改内容:base_path=/home/liu/fastdfs/tracker

5. 配置存储服务器storage

  1. sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
  2. 在/home/liu/fastdfs/ 目录中创建目录 storage
    sudo mkdir -p /home/liu/fastdfs/storage
  3. 编辑/etc/fdfs/storage.conf配置文件——sudo vim /etc/fdfs/storage.conf
    修改内容:
    base_path=/home/liu/fastdfs/storage
    store_path0=/home/liu/fastdfs/storage
    tracker_server=自己ubuntu虚拟机的ip地址:22122

6. 启动tracker和storage

sudo service fdfs_trackerd start
sudo service fdfs_storaged start
说明:因为默认启动服务的方式会报错,服务也是一个可执行程序,所以直接找到服务可执行程序所在的路径,像执行普通可执行程序一样启动这个服务。

  1. liu@Ubuntu:/home/liu/fastdfs$ cd /usr/bin/
  2. liu@Ubuntu:/usr/bin$ sudo ./fdfs_trackerd /etc/fdfs/tracker.conf start
  3. liu@Ubuntu:/usr/bin$ sudo ./fdfs_storaged /etc/fdfs/storage.conf start

查看FastDFS是否启动

  • ps aux | grep fdfs

7. 测试FastDFS文件上传

  1. sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
  2. 编辑/etc/fdfs/client.conf配置文件——sudo vim /etc/fdfs/client.conf
    修改内容:
    base_path=/home/liu/fastdfs/tracker
    tracker_server=自己ubuntu虚拟机的ip地址:22122
  3. 上传文件测试:
    fdfs_upload_file /etc/fdfs/client.conf ~/Desktop/fruit.jpg
    在这里插入图片描述
    成功后,返回图片id:
    group1/M00/00/00/wKgBdl3orxiAFDJxAABaBhJPBGI054.jpg
    group1:组信息
    M00:对应store_path0
    /00/00:磁盘路径

8. 安装Nginx及fastdfs-nginx-module

  1. 解压缩 nginx-1.8.1.tar.gz

  2. 解压缩 fastdfs-nginx-module-master.zip

  3. 进入nginx-1.8.1目录中
    sudo chmod 776 configure # 先要给configure设置权限 chmod 776 configure

  4. 执行
    sudo ./configure --prefix=/usr/local/nginx/ --add-module=/home/liu/fastdfs-nginx-module-master/src
    sudo make如果这里报错,请参照此博客:https://blog.csdn.net/SooKie_p/article/details/90291106
    sudo make install

  5. sudo cp /home/liu/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf

  6. sudo vim /etc/fdfs/mod_fastdfs.conf
    修改内容:
    connect_timeout=10
    tracker_server=自己ubuntu虚拟机的ip地址:22122
    url_have_group_name=true
    store_path0=/home/liu/fastdfs/storage

  7. sudo cp /home/liu/fastdfs-master/conf/http.conf /etc/fdfs/http.conf

  8. sudo cp /home/liu/fastdfs-master/conf/mime.types /etc/fdfs/mime.types

  9. 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;
    }
    }

  10. 启动nginx
    10.1 sudo /usr/local/nginx/sbin/nginx
    或者使用下面的方式启动
    10.2 cd /usr/local/nginx/sbin/
    10.3 sudo ./nginx

  11. 停止nginx,在/usr/local/nginx/sbin下使用此命令
    sudo ./nginx -s stop

  12. 重新加载配置文件,在/usr/local/nginx/sbin下使用此命令
    sudo ./nginx -s reload

  13. 查看nginx是否启动
    ps aux | grep nginx

最后进行测试的结果

  1. 在Ubuntu18.04下输入以下网址进行测试
  • http://127.0.0.1:8888/group1/M00/00/00/wKjIgF2-k3WAQX9DAABaBhJPBGI451.jpg
  • 在浏览器中可以用 127.0.0.1:8888/返回的文件id
    访问图片
    在这里插入图片描述

你可能感兴趣的:(Linux,Django)