Centos7部署FastDFS及Nginx

作者: 程序员阿晨 | 来源:发表于2020-05-31 18:58 被阅读0次

    FastDFS 支持集群部署,这里我仅仅使用一台虚拟机来进行测试,会对集群部署的点进行讲解(Nginx、单点 Tracker Server、单点 Storage Server 进行安装)。我会先安装 Nginx,然后安装单点 Tracker Server、单点 Storage Server ,最后整合 FastDFS-Nginx-Module。

    所用环境信息:

    • 服务器:centos7
    • Nginx:nginx-1.12.2
    • FastDFS:FastDFS_v5.05
    • FastDFS-Nginx-Module:fastdfs-nginx-module_v1.16
    • libfastcommon:libfastcommonV1.0.7
      资源下载:百度网盘链接 密码: algl

    将下载好的资源 上传到服务器

    安装Nginx

    1、安装依赖库:

    • 安装 GCC(命令:yum install gcc
    • 安装 PCRE(命令:yum install pcre-devel
    • 安装 ZLib(命令:yum install zlib zlib-devel
    • 安装 OpenSSL(命令:yum install openssl openssl-devel
      综合命令:yum -y install gcc pcre-devel zlib zlib-devel openssl openssl-devel

    2、解压Nginx至/usr/local目录:tar -zxvf nginx-1.12.2.tar.gz /usr/local/

    3、安装Nginx:先进入到/usr/local/nginx-1.12.2 cd /usr/local/nginx-1.12.2
    使用以下命令安装 Nginx:(./configure 默认安装位置为 /usr/local/nginx,可以使用参数 --prefix=/usr/nginx 进行修改)

    ./configure
    make
    make install
    

    4、测试配置文件:
    测试配置文件是否正确,我们先进入到 /usr/local/nginx/sbin 目录,执行以下命令:
    cd /usr/local/nginx/sbin
    ./nginx -t

    5、启动Nginx:./nginx
    使用curl 测试Nginx是否启动成功:curl localhost

    6、添加到守护进程
    1)在系统服务目录里创建nginx.service文件
    vim /etc/systemd/system/nginx.service
    内容如下:

    [Unit]
    Description=nginx
    After=network.target
      
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s quit
    PrivateTmp=true
      
    [Install]
    WantedBy=multi-user.target
    

    部分参数说明:

    [Unit]:服务的说明
    Description:描述服务
    After:描述服务类别
    [Service]服务运行参数的设置
    Type=forking是后台运行的形式
    ExecStart为服务的具体运行命令
    ExecReload为重启命令
    ExecStop为停止命令
    PrivateTmp=True表示给服务分配独立的临时空间
    注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
    [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
    

    2)设置开机自启动:systemctl enable nginx.service
    停止开机自启动:systemctl disable nginx.service
    查看服务当前状态:systemctl status nginx.service
    重新启动服务:systemctl restart nginx.service
    查看所有已启动的服务:systemctl list-units --type=service

    FastDFS安装

    1、安装依赖库:

    yum install gcc-c++
    yum -y install libevent
    

    2、安装 libfastcommon
    libfastcommon 是 FastDFS 官方提供的,libfastcommon 包含了 FastDFS 运行所需要的一些基础库。该库上面我有提供下载地址。

    tar -zxvf libfastcommonV1.0.7.tar.gz
    cd libfastcommon-1.0.7/
    ./make.sh
    ./make.sh install
    

    注意:libfastcommon 安装好后会自动将库文件拷贝至 /usr/lib64 下,由于 FastDFS 程序引用usr/lib 目录所以需要将 /usr/lib64 下的库文件拷贝至 /usr/lib 下。
    cp /usr/lib64/libfastcommon.so /usr/lib/

    3、安装 FastDFS

    # 解压
    tar -zxvf FastDFS_v5.05.tar.gz
    cd FastDFS
    # make
    ./make.sh
    ./make.sh install
    

    安装成功将安装目录下的 conf 下的文件拷贝到 /etc/fdfs/ 下:
    cp -a conf/* /etc/fdfs/

    4、配置 Tracker
    安装成功后进入 /etc/fdfs 目录,我们要对 tracker.conf 配置文件进行修改:

    a) 在 /home 目录下新建 FastDFS 目录:

    cd /home/
    mkdir FastDFS
    

    b) 修改 tracker.conf:

    cd /etc/fdfs/
    vim tracker.conf
    #----------------------------修改内容如下----------------------------
    base_path=/home/yuqing/FastDFS 改为:base_path=/home/FastDFS
    http.server_port=8080 改为 http.server_port=80
    

    如果配置 Tracker 集群,主需要在多台服务器上安装 FastDFS,然后配置 Tracker 即可。

    5、启动 Tracker
    使用命令启动 Tracker,然后查询是否启动。

    # 启动命令
    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
    # 查看是否启动
    ps -ef | grep fdfs
    

    6、配置 Storage
    由于我只使用一台vps进行模拟安装,就无需再次安装 FastDFS 了,如果你需要集群部署,比如你有三台机器:192.168.1.101、192.168.1.102、192.168.1.103,那么你需要在每台机器上都执行“安装 FastDFS”和“配置 Storage”即可,这里仅仅使用一台vps进行演示。

    安装成功后进入 /etc/fdfs 目录,我们要对 storage.conf 配置文件进行修改:
    a) 在 /home/FastDFS 目录下新建 fdfs_storage 目录:

    cd /home/FastDFS
    mkdir fdfs_storage
    

    b) 修改 storage.conf:

    cd /etc/fdfs/
    vim storage.conf
    
    #----------------------------修改内容----------------------------
    group_name=group1
    base_path=/home/yuqing/FastDFS 改为 base_path=/home/FastDFS
    
    store_path0=/home/yuqing/FastDFS 改为store_path0=/home/FastDFS/fdfs_storage
    #如果有多个挂载磁盘则定义多个store_path,如下
    #store_path1=.....
    #store_path2=......
    
    tracker_server=192.168.1.217:22122   # 配置 Tracker 服务器:IP
    #如果有多个则配置多个 Tracker 
    #tracker_server=192.168.1.218:22122
    #tracker_server=192.168.1.219:22122
    
    #配置http端口
    http.server_port=80
    

    7、启动 Storage
    使用命令启动 Storage,然后查询是否启动。

    # 启动命令
    /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
    # 查看是否启动
    ps -ef | grep fdfs
    

    8、上传图片测试
    这里我将一张名为 picture.jpg 的图片上传到 /root 目录下,使用这张图片进行上传图片测试。

    FastDFS 安装成功可通过 /usr/bin/fdfs_test 测试上传、下载等操作。这里我们需要修改 /etc/fdfs/client.conf 配置文件:

    vim client.conf
    
    #----------------------------修改内容----------------------------
    base_path=/home/yuqing/fastdfs 改为 base_path=/home/FastDFS
    tracker_server 改为 tracker_server=192.168.1.217:22122
    

    使用以下格式命令上传文件

    #命令格式
    /usr/bin/fdfs_test 客户端配置文件地址  upload  上传文件
    
    #测试命令
    /usr/bin/fdfs_test /etc/fdfs/client.conf upload /root picture.jpg
    

    上传成功后会显示上传图片等信息,可以根据返回信息中提供文件信息去 /home/FastDFS/fdfs_storage/ 目录下查看我们刚刚上传好的图片。至此说明 FastDFS 的单点 Tracker 和 单点 Storage 都已经安装成功了。

    9、配置 FastDFS-Nginx-Module

    我们已经安装和测试好了 FastDFS,但是如果我们上传的是图片,那我们如何在浏览器中查看图片呢?这个就需要结合 Nginx 来进行配置了,目前我们把 FastDFS 和 Nginx 都安装好了,那么还需要一个 FastDFS-Nginx-Module 模块来完成这个任务,接下来我们就一起来配置一下 FastDFS-Nginx-Module 模块。

    a)解压 fastdfs-nginx-module_v1.16.tar.gz,修改 config 文件路径:

    #解压FastDFS-Nginx-Module
    tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
    #进入安装目录下的 src 文件夹
    cd /home/software/fastdfs-nginx-module/src/
    #修改 config 文件
    vim config
    
    #------------------------修改内容------------------------
    #将:
    CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
    CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
    #修改为:
    CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
    CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"
    #去掉了路径中的local
    

    b) 将 fastdfs-nginx-module/src 下的 mod_fastdfs.conf 拷贝至 /etc/fdfs/ 下,并修改mod_fastdfs.conf 的内容:

    cp mod_fastdfs.conf /etc/fdfs/
    
    vim /etc/fdfs/mod_fastdfs.conf
    
    #------------------------修改内容------------------------
    base_path=/home/FastDFS
    
    tracker_server=192.168.1.217:22122
    #如果有多台,继续配置即可,例如:tracker_server=192.168.1.218:22122
    
    url_have_group_name=true #url中包含group名称
    
    store_path0=/home/FastDFS/fdfs_storage   #指定文件存储路径
    #如果有多个,如下配置:store_path1=/home/FastDFS/fdfs_storage1
    
    #将 libfdfsclient.so 拷贝至 /usr/lib 下:
    cp /usr/lib64/libfdfsclient.so /usr/lib/
    
    #创建 nginx/client 目录
    mkdir -p /var/temp/nginx/client
    

    c) 添加 FastDFS-Nginx-Module 模块

    配置完成后,然后进入 Nginx 安装目录,执行添加模块命令:

    #进入nginx安装目录
    cd /home/software/nginx-1.12.2
    #执行添加模块命令
    ./configure --add-module=/home/software/fastdfs-nginx-module/src
    make
    make install
    

    d) 修改 Nginx 配置文件,测试图片访问
    上面的配置完成后,我们需要修改一下 Nginx 的配置文件,进入 Nginx 目录,使用以下命令操作:

    # 进入 Nginx 目录
    cd /usr/local/nginx/conf
    #修改配置文件
    vim nginx.conf
    
    #------------------------修改内容------------------------
    #修改配置文件的 server 部分,如下所示:
    server {
            listen       80;
            server_name  192.168.1.217;
    
            location /group1/M00/{
                    root /home/FastDFS/fdfs_storage/data;
                    ngx_fastdfs_module;
            }
    }
    

    f) 配置完成后,启动 Nginx:

    #进入目录
    cd /usr/local/nginx/sbin/
    #启动 Nginx
    ./nginx
    # 查看 Nginx 进程
    ps -ef | grep nginx
    

    测试:之前测试FastDFS上传过一张图片,上传成功后返回图片地址,用浏览器打开看图片是否显示即可,至此 FastDFS-Nginx-Module 配置完成。如果访问不了,请在防火墙开启80端口的访问权限。

    本文参考由浅入深了解 FastDFS 分布式文件系统
    感谢:AlanShelby

    相关文章

      网友评论

        本文标题:Centos7部署FastDFS及Nginx

        本文链接:https://www.haomeiwen.com/subject/hnzlzhtx.html