• FastDFS 与 Nginx 实现分布式图片服务器


    FastDFS 与 Nginx 实现分布式图片服务器

    本人的 Ubuntu18.04 用户名为 jj

    点我下载所有所需的压缩包文件

    一、FastDFS安装

    1、安装 fastdfs 依赖包

    ① 解压 libfastcommon-master.zip 到 /home/jj/ 目录下

    unzip libfastcommon-master.zip
    

    ② 进入到 libfastcommon-master 目录中

    cd libfastcommon-master
    

    ③ 执行 ./make.sh

    ./make.sh
    

    ④ 执行 sudo ./make.sh install

    sudo ./make.sh install
    

    如果 ./make.sh 无效,显示未找到命令,是由于当前 Linux 没有相应的编译环境

    安装 build-essential 的软件包,就可以一次将编译器、make工具、所有的编程头文件、函数库等全部安装上,其中也包括 gcc 编译器。

    sudo apt-get install build-essential
    

    再继续执行上面的 ③,④ 步骤。

    2、安装 fstdfs

    ① 解压 fastdfs-master.zip 到 /home/jj/ 目录下

    unzip fastdfs-master.zip
    

    ② 进入到 fastdfs-master 目录中

    cd fastdfs-master
    

    ③ 执行 ./make.sh

    ./make.sh
    

    ④ 执行 sudo ./make.sh install

    sudo ./make.sh install
    

    3、配置跟踪服务器tracker

    ① 这一步目的是得到 tracker.conf 配置文件

    sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
    

    ② 在 home/jj/ 目录下创建目录 fastdfs/tracker

    mkdir -p /home/jj/fastdfs/tracker
    

    ③ 编辑 /etc/fdfs/tracker.conf 配置文件

    sudo vim /etc/fdfs/tracker.conf
    

    修改 base_path=/home/jj/fastdfs/tracker

    如果显示 vim:找不到命令,是因为当前 Linux 没有安装 vim

    安装 vim

    sudo apt-get install vim
    

    再继续执行上面的 ③ 步骤。

    4、配置存储服务器 storage

    ① 这一步目的是得到 storage.conf 配置文件

    sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
    

    ② 在 home/jj/fastdfs 目录下创建目录 storage

    mkdir –p /home/jj/fastdfs/storage
    

    ③ 编辑 /etc/fdfs/storage.conf 配置文件

    sudo vim /etc/fdfs/storage.conf
    

    修改内容:

    base_path=/home/jj/fastdfs/storage
    store_path0=/home/jj/fastdfs/storage
    tracker_server=自己ubuntu虚拟机的ip地址:22122

    通过 ifconfig -a 可以查看本机的 ip 地址。

    如果出现 Command 'ifconfig' not found,那么需要安装 net-tools

    sudo apt-get install net-tools
    

    5、启动tracker 和 storage

    sudo service fdfs_trackerd start
    sudo service fdfs_storaged start
    

    6、测试 FastDFS 是否安装成功

    ① 这一步目的是得到 client.conf 配置文件

    sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
    

    ② 编辑/etc/fdfs/client.conf配置文件

    sudo vim /etc/fdfs/client.conf
    

    修改内容:
    base_path=/home/jj/fastdfs/tracker
    tracker_server=自己ubuntu虚拟机的ip地址:22122

    ③ 上传文件测试

    fdfs_upload_file /etc/fdfs/client.conf 要上传的图片文件

    举例:假如在 home/jj/ 目录下有一张图片 head.jpg,进行文件上传

    fdfs_upload_file /etc/fdfs/client.conf /home/jj/head.jpg
    

    如果返回类似 group1/M00/00/00/wKifglwSKf2Ac1GOAAAp-z3D5w8355.jpg 的文件 id 则说明文件上传成功。

    二、安装 nginx 及 fastdfs-nginx-module

    ① 解压 nginx-1.8.1.tar.gz 和 fastdfs-nginx-module-master.zip 到 /home/jj/ 目录下

    tar -zxvf nginx-1.8.1.tar.gz
    unzip fastdfs-nginx-module-master.zip
    

    ② 安装 nginx 依赖

    解决依赖包openssl安装,命令:

    sudo apt-get install openssl libssl-dev
    

    解决依赖包pcre安装,命令:

    sudo apt-get install libpcre3 libpcre3-dev
    

    解决依赖包zlib安装,命令:

    sudo apt-get install zlib1g-dev
    

    ③ 进入 /home/jj/nginx-1.8.1 目录中

    cd /home/jj/nginx-1.8.1
    

    ④ 执行

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

    在这里为:

    sudo ./configure --prefix=/usr/local/nginx/ --add-module=/home/jj/fastdfs-nginx-module-master/src
    

    ⑤ 删除 /home/jj/nginx-1.8.1/objs/Makefile 中第三行的 -Werror,否则编译的时候报错

    sudo vim /home/jj/nginx-1.8.1/objs/Makefile
    

    然后继续执行以下命令:

    sudo make
    sudo make install
    

    ⑥ 这一步是得到 mod_fastdfs.conf 配置文件

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

    在这里为:

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

    ⑦ 编辑 mod_fastdfs.conf 配置文件

    sudo vim /etc/fdfs/mod_fastdfs.conf
    

    修改内容:
    connect_timeout=10
    tracker_server=自己ubuntu虚拟机的ip地址:22122
    url_have_group_name=true
    store_path0=/home/jj/fastdfs/storage

    sudo cp 解压后的fastdfs-master目录中conf目录中的http.conf /etc/fdfs/http.conf

    在这里为:

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

    sudo cp 解压后的fastdfs-master目录中conf目录中的mime.types /etc/fdfs/mime.types

    在这个为:

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

    ⑨ 修改 nginx.conf 配置文件

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

    ⑩ 启动 nginx

    sudo /usr/local/nginx/sbin/nginx
    

    三、验证Nginx是否能成功访问FastDFS存储的图片

    在我们上传图片 head.jpg 的时候,FasttDFS 会返回我们一个类似 group1/M00/00/00/wKifglwSKf2Ac1GOAAAp-z3D5w8355.jpg 这样的字符串。

    在浏览器访问:

    127.0.0.1:8888/group1/M00/00/00/wKifglwSKf2Ac1GOAAAp-z3D5w8355.jpg

    如果能显示该图片就说明我们安装成功了。

    四、一些基本常用命令

    1、启动 tracker 和 storage

    sudo service fdfs_trackerd start
    sudo service fdfs_storaged start
    

    2、启动,关闭,重启 nginx

    进入 /usr/local/nginx/sbin/ 文件夹

    启动 nginx:

    sudo ./nginx
    

    关闭 nginx:

    sudo ./nginx -s stop
    

    重启 nginx:

    sudo ./nginx -s reload
    

    3、查看 nginx 进程

    ps aux | grep nginx
    

    4、通过 pid 查看 nginx 的占用端口

    netstat -nap | grep nginx 的 pid
    
    作者:kindleheart
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    转 Android的消息处理机制
    转 Android的消息处理机制(图+源码分析)——Looper,Handler,Message
    Android如何获取开机启动项列表
    在Android里完美实现基站和WIFI定位
    managedQuery和query的区别,
    Android WIFI 操作
    转:Android 获取Root权限
    CocoaPods: 制作cocoapods国内镜像
    CentosOS 7: 创建Nginx+Https网站
    Mac: 通过蓝牙用安卓手机向Mac发送文件
  • 原文地址:https://www.cnblogs.com/kindleheart/p/10115824.html
Copyright © 2020-2023  润新知