zoukankan      html  css  js  c++  java
  • Linux 部署 FastDFS

    FastDFS

    安装规划:

    项目 信息
    Group Name group1
    FastDFS安装主目录 /usr/local/fastdfs-5.0.8
    FastDFS work主目录 /usr/local/fastdfs-workhome
    FastDFS Tracker Server work主目录 /usr/local/fastdfs/tracker
    FastDFS Storage Server work主目录 /usr/local/fastdfs/storage
    FastDFS Tracker Server服务端口 22122
    FastDFS Tracker Server HTTP 端口 22080
    FastDFS Storage Server 服务端口 23000
    FastDFS Storage Server HTTP端口 23080

    下载并安装

    # 下载 github搜索 LibFastCommon FastDFS fastdfs-nginx-module 这里使用happyfish100的仓库
    # 下载链接获取 点进项目 -> release -> 选择版本 -> Win下载zip | Linux下载tar.gz
    # 下载包
    wget https://github.com/happyfish100/libfastcommon/archive/V1.0.41.tar.gz
    wget https://github.com/happyfish100/fastdfs/archive/V6.03.tar.gz
    wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz
    
    ##解压  LibFastCommon FastDFS
    tar -zxvf V1.0.41.tar.gz
    tar -zxvf V6.03.tar.gz
    tar -zxvf V1.22.tar.gz
    
    # 安装流程 进入文件夹 -> 编译 -> 安装
    # 查看文件夹 
    ls
    cd 目标文件夹
    ./make.sh 
    ./make.sh install
    

    采用默认安装的方式安装,安装后的相应文件与目录:
    A、服务脚本在:

    /etc/init.d/fdfs_storaged
    /etc/init.d/fdfs_trackerd
    # ll /etc/init.d/ | grep fdfs*
    

    B、配置文件在(样例配置文件)

    /etc/fdfs/client.conf.sample
    /etc/fdfs/storage.conf.sample
    /etc/fdfs/tracker.conf.sample
    # ll /etc/fdfs/
    

    C、命令工具在/usr/bin/目录下

    3.3.2 配置FastDFS Tracker Server
     
    (1) 复制tracker server配置文件模板

    # cd /etc/fdfs/
     
    # cp tracker.conf.sample tracker.conf
    

    (2) 修改tracker.conf配置
     
    对其中的部分配置项调整如下:

    base_path=/usr/local/fastdfs-workhome/tracker
     
    rotate_error_log = true
     
    log_file_keep_days = 30
    

    3.3.3  配置client
     
    (1)复制client配置文件模板

    # cd /etc/fdfs
     
    # cp client.conf.sample client.conf
    

    (2) 修改client配置
     
    对client.conf中的部分配置项调整如下:

    base_path=/usr/local/fastdfs-workhome/tracker
     
    tracker_server=ip:22122
     
    tracker_server=ip:22122
    

    注意:上面配置项中的tracker_server的两条记录均需要保留在配置文件中。
     
    3.3.4 配置FastDFS Storage Server
     
    (1) 复制配置文件模板

    # cd /etc/fdfs
     
    # cp storage.conf.sample storage.conf
    

    (2) 修改storage.conf
    对storage.conf中的部分配置项调整如下:

    base_path=/usr/local/fastdfs-workhome/storage
     
    #store_path0=/home/yuqing/fastdfs (注释掉本行)
    
    tracker_server=ip地址:22122
    
     
    use_access_log = true
     
    rotate_access_log = true
     
    rotate_error_log = true
     
    log_file_keep_days = 30
    

    如果需要配合nginx启动,还需要转移http.conf、mime.types。否则nginx无work进程

    cp /usr/local/fastdfs/conf/http.conf http.conf
    cp /usr/local/fastdfs/conf/mime.types mime.types
    

    4. 服务启停
     
    4.1 启停tracker
     
    (1) 启动tracker

    # service fdfs_trackerd start
     
    # ss -lntup|grep 22122
    

    首次启动tracker会在tracker的work主目录下创建data、logs目录

    (2) 停止tracker服务

    # service fdfs_trackerd stop
    # ss -lntup|grep 22122
    

    4.2 启停storage
     
    重要:启动storage时需要保证当前集群中所有的tracker都处于启动状态。
     
    (1) 启动storage

    # service fdfs_storaged start
     
    # ss -lntup|grep 23000
    

    首次启动storage server,其会自动在storage主目录下创建data、logs目录

    (2) 停止storage

    # service fdfs_storaged stop
    # ss -lntup|grep 23000
    

    4.3 设置FastDFS服务化(开机启动)

    # vi /etc/rc.d/rc.local
    

    添加以下内容:

    ## FastDFS Tracker
    service fdfs_trackerd start
    service fdfs_storaged start
    
    1. 服务验证
      5.1 上传文件
      (1) 上传一个测试图片文件到服务器,路径为:
      /home/usr/test.jpg
      (2) 上传至FastDFS
    # /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/user/test.jpg
    

    返回文件ID说明上传成功,接下来查看文件状态

    # /usr/bin/fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/Cmho21lJ3ECAPr9TAANoS18-GXE264.jpg
    

    5.2 下载文件

    fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/Cmho11lI7RKAMpJRAANoS18-GXE892.jpg
    

    5.3 删除文件

    fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/Cmho11lI7RKAMpJRAANoS18-GXE892.jpg
    

    增加HTTP能力

    1. 安装规划
       
      项目 信息
      nginx安装包主目录 /usr/local/nginx-1.6.3-src
      nginx安装目录 /usr/local/nginx-1.6.3
      storage server的nginx绑定监听端口 80
      FastDFS Storage Server work主目录 /usr/local/fastdfs/storage
      FastDFS Storage Server 服务端口 23000

    3、nginx安装
    (1) 安装包准备

    • 上传相关安装包nginx-1.6.3.tar.gz、fastdfs-nginx-module_v1.16.tar.gz 到目录: /usr/local/nginx-1.6.3-src下。
    • 安装包解压
    # wget https://nginx.org/download/nginx-1.16.1.tar.gz
    # wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz
    # tar -zxvf nginx-1.16.1.tar.gz
    # tar -zxvf V1.22.tar.gz
    # mv fastdfs-nginx-module-1.22/ fastdfs-nginx-module
    

    (2) 依赖程序包安装
    安装zlib、pcre程序

    # yum install -y zlib zlib-devel
    # yum install -y pcre pcre-devel
    # yum install gd-devel
    

    (3) nginx安装
    重要:首先修改fastdfs-nginx-module/src目录下的config文件,去除CORE_INCS配置项中相关路径中的/local,定位到/usr/include。
    编译安装nginx,注意--prefix指定安装目录:

    # cd /usr/local/nginx-1.6.3-src/nginx
    # ./configure --prefix=/usr/local/nginx --user=root --with-http_image_filter_module --with-http_stub_status_module --add-module=../fastdfs-nginx-module/src
    # make
    # make install
    

    (4) nginx基本配置

    # cd /usr/local/nginx-1.6.3/conf
    # vim nginx.conf
    # 涉及的主要修改配置项如下:
    user root;
    worker_processes 1;
    worker_rlimit_nofile 51200;
    events {
    use epoll;
    worker_connections 51200;
    }
    http {
    include mime.types;
    default_type application/octet-stream;
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';
    proxy_set_header Host $Host;
    proxy_set_header X-Real_Ip $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    real_ip_header X-Forwarded-For;
    sendfile on;
    keepalive_timeout 65;
    server {
    listen 80;
    server_name _;
    location /NginxStatus {
    allow 10.0.0.0/8;
    allow 172.0.0.0/8;
    deny all;
    stub_status on;
    access_log off;
    }
    location / {
    root html;
    index index.html index.htm;
    }
    

    (5) nginx服务验证

    • 启动nginx
    # cd /usr/local/nginx-1.6.3/sbin
    # ./nginx
    # ps -ef | grep nginx | grep -v greproot 13099 1 0 14:59 ? 00:00:00 nginx: master process ./nginx
    

    如果启动异常,可以查看nginx的logs目录下的error.log日志.

    • 通过状态监控页面验证

    浏览器访问 http://ip地址/NginxStatus

    补充nginx常用命令:

    ./nginx -t 检查配置文件
    ./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。 
    ./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
    # 当 ngin x的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用-s reload不用先停止 ngin x再启动 nginx 即可将配置信息在 nginx 中生效,如下:
    ./nginx -s reload
    

    (6) 加入到自启动程序

    # vi /etc/rc.d/rc.local
    

    添加以下内容:

    ## nginx
    /usr/local/nginx-1.6.3/sbin/nginx
    

    Nginx基础服务安装完成.
    4. 配置fastdfs-nginx-module
    (1) 将fastdfs-nginx-module/src目录下的mod_fastdfs.conf复制到/etc/fdfs目录下。

    # cd /usr/local/fastdfs-5.0.8/FastDFS/conf
    # cp anti-steal.jpg http.conf mime.types /etc/fdfs/
    # cp /usr/local/nginx-1.6.3-src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
    

    (2) 修改etc/fdfs/mod_fastdfs.conf中的配置
    主要修改的配置项如下:

    # the base path to store log files
    base_path=/usr/local/fastdfs-workhome/storage
    # 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=ip地址:22122
    tracker_server=ip地址:22122
    # 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
    # set the group count
    # set to none zero to support multi-group
    # set to 0 for single group only
    # groups settings section as [group1], [group2], ..., [groupN]
    # default value is 0
    # since v1.14
    group_count = 1
    # group settings for group #1
    # since v1.14
    # when support multi-group, uncomment following section
    [group1]
    group_name=group1
    storage_server_port=23000
    store_path_count=1
    store_path0=/usr/local/fastdfs/storage
    

    (3) 修改nginx配置
    在http/server节点中添加如下内容

    location /group1/M00{
    root /usr/local/fastdfs/storage/;
    ngx_fastdfs_module;
    }
    

    (4)服务验证

    • 重新启动nginx或者reload配置文件使nginx加载最新的配置。
    sbin/nginx -t
    sbin/nginx -s reload
    ps -ef | grep nginx
    # 看到nginx的master和work进程都在才行
    # 无法访问则 ss  -anptu  |  grep nginx 检查nginx是否监听80端口,防火墙是否拦截80端口
    

    5. 加入动态缩略图功能

    图片服务器提供动态的图片缩放,不在采用提前上传各个尺寸的图片的方式。这样既可以节省存储空间,也可以增强功能的灵活性(避免尺寸需求变更,需要重新上传全部图片)。
    图片服务器采用nginx的扩展模块——http_image_filter_module实现图片的动态缩放,因为
    http_image_filter_module是nginx自身提供的集成图片处理模块,支持nginx-0.7.54以后的版本,可以实现实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息。对于图片服务器来说,访问顺序是cdn->nginx->图片服务器,cdn会回源访问nginx,nginx动态生成指定分辨率的图片后,下次用户再访问此分辨率图片时,cdn上已经有了缓存,会大大减少并发动态生成缩略图的访问量。
    在步骤4中,我们已经安装了动态缩略图的相关module——http_image_filter_module。所以本小节只需要修改nginx配置即可。

    (1) 修改nginx配置

    # cd /usr/local/nginx/conf
    # vim nginx.conf
    

    在http> server节点下相关配置信息如下

    location ~ group(d+)/M00/(.+)_(d+)x(d+).(jpg|gif|png){
    # root /usr/local/fastdfs-workhome/storage/data;
    ngx_fastdfs_module;
    set $w $3;
    set $h $4;
    if ($w != "0") {
    rewrite group(d+)/M00(.+)_(d+)x(d+).(jpg|gif|png)$ group$1/M00$2.jpg break;
    }
    image_filter resize $w $h;
    image_filter_buffer 2M;
    }
    

    重新刷新nginix服务。

    (2) 服务验证
    浏览器中访问url已验证缩放功能。
    http://ip/group1/M00/00/00/Cmho21lJ3ECAPr9TAANoS18-GXE264_100x50.jpg

  • 相关阅读:
    DROP TABLE 恢复【一】
    Recover InnoDB dictionary
    Percona XtraDB Cluster
    主从复制延时判断
    Keepalived+MySQL实现高可用
    Performance Tuning MySQL
    Redis实现异步消息队列与延时队列
    Python多线程中的setDaemon
    Python实现远程控制单片机led状态
    【机器学习】朴素贝叶斯应用实例
  • 原文地址:https://www.cnblogs.com/hyry/p/11927597.html
Copyright © 2011-2022 走看看