zoukankan      html  css  js  c++  java
  • 分享知识-快乐自己:FastDFS 图片服务器的搭建

    使用一台虚拟机来模拟,只有一个Tracker、一个Storage服务,配置nginx访问图片。

    1):安装依赖包

    yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget

    2):软件包下载   已经提供好的软件包点我下载

    或者

    使用以下命令下载:

    //默认下载到当前目录
    
    wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
    
    wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
    
    wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz
    
    wget http://openresty.org/download/ngx_openresty-1.7.10.1.tar.gz

    //这里我们下载目录为 /opt/tools/fastdfsTools 创建工具文件夹 mkdir -p /opt/tools/fastdfsTools

    //解压目录为 /opt/fastdfs 创建解压目录 mkdir /opt/fastdfs/

    3):安装libfastcommon-1.0.7

    解压到指定目录:

    [root@admin fastdfsTools]# tar -zxvf V1.0.7.tar.gz -C /opt/fastdfs/

    切换到 libfastcommon-1.0.7 目录:

    [root@admin opt]# cd /opt/fastdfs/libfastcommon-1.0.7

    编译安装:

    [root@admin libfastcommon-1.0.7]# ./make.sh
    
    [root@admin libfastcommon-1.0.7]# ./make.sh install

    4):安装Tracker服务

    解压到指定目录:

    [root@admin fastdfsTools]# tar -zxvf V5.05.tar.gz -C ../../fastdfs/

    切换到 fastdfs-5.05 目录:

    [root@admin fastdfsTools]# cd /opt/fastdfs/fastdfs-5.05/

    编译安装:

    [root@admin fastdfs-5.05]# ./make.sh
    
    [root@admin fastdfs-5.05]# ./make.sh install

    安装之后会在/usr/bin目录下看到fdfs开头的文件。

    5):创建文件夹(用于存放后期生成的信息)

    //切换到解压文件夹的根目录
    
    cd /opt/fastdfs
    
    //创建文件夹
    
    mkdir -p data/fdfs/
    mkdir -p data/nginx
    mkdir -p data/nginx/logs
    
    //这里有个坑后期指定 /opt/fastdfs/data/nginx/logs 的时候不会在文件夹下创建日志文件。所以这里事先创建好,并授予访问权限
    
    chmod 777 /opt/fastdfs/data/nginx/logs/touch /opt/fastdfs/data/nginx/logs/log.log

    拷贝配置文件:

    cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
    
    cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
    
    cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf

    配置tracker服务:修改 /etc/fdfs/tracker.conf 文件: 

    vim /etc/fdfs/tracker.conf

    修改内容:

    日志文件路径为/opt/fastdfs/data/fdfs
    
    执行权限:root
    
    base_path=/opt/fastdfs/data/fdfs
    
    run_by_group=root
    
    run_by_user=root

    启动tracker:

    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start

    可以查看是否启动: ps aux|grep tracker

    6):安装storage服务

    修改/etc/fdfs/storage.conf文件:

    vim /etc/fdfs/storage.conf

    修改内容:

    组名
    执行权限
    日志文件存储路径
    tracker服务器地址
    存储文件路径
    
    group_name=group1
    
    run_by_group=root
    
    run_by_user=root
    
    base_path=/opt/fastdfs/data/fdfs
    
    tracker_server=192.168.31.202:22122
    
    store_path0=/opt/fastdfs/data/fdfs

    启动storage:

    /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
    
    //可以查看是否启动: ps aux|grep storage

    7):配置storage测试

     修改配置文件 /etc/fdfs/client.conf 文件:

    vim /etc/fdfs/client.conf

    修改内容:

    日志文件存储路径
    tracker服务器地址    
        
    base_path=/opt/fastdfs/data/fdfs
    
    tracker_server=192.168.31.202:22122

    本地测试上传:

    首先在 /opt/fastdfs/imgs 下放上 timg.jpg 这张图片
    
    上传图片:
    
    /usr/bin/fdfs_test /etc/fdfs/client.conf upload /opt/fastdfs/imgs/timg.jpg

    8):搭建nginx_openresty

    解压 fastdfs-nginx-module_v1.16.tar.gz 到指定目录:

    [root@admin tools]# cd /opt/tools/fastdfsTools/
    
    [root@admin fastdfsTools]# tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C ../../fastdfs/

    切换到解压目录:

    [root@admin fastdfs-nginx-module]# cd /opt/fastdfs/fastdfs-nginx-module/src/

    [root@admin src]# vim config

    把其中的local去掉(总共有3个)

    安装nginx_openresty包:

    解压 ngx_openresty-1.7.10.1.tar.gz 到指定目录:

    [root@admin tools]# cd /opt/tools/fastdfsTools/
    
    [root@admin fastdfsTools]# tar -zxvf ngx_openresty-1.7.10.1.tar.gz -C ../../fastdfs/

    切换目录:

    [root@admin ngx_openresty-1.7.10.1]# cd /opt/fastdfs/ngx_openresty-1.7.10.1/

     编译安装:

    ./configure --with-luajit --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --add-module=../fastdfs-nginx-module/src
     
    gmake gmake install

    说明:

    --with***                安装一些内置/集成的模块

    --with-http_realip_module  取用户真实ip模块

    -with-pcre               Perl兼容的达式模块

    --with-luajit              集成luajit模块

    --add-module            添加自定义的第三方模块,如此次的fastdfs-nginx-module

    配置 mode_fastdfs.conf :

    将mode_fastdfs.conf复制到/etc/fdfs目录下
    
    cp /opt/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

    编辑配置文件:

    vim /etc/fdfs/mod_fastdfs.conf

    修改内容:这里注意要将[group1]下面的内容解放:

    base_path=/opt/fastdfs/data/nginx
    
    tracker_server=192.168.31.202:22122
    
    group_name=group1
    
    store_path0=/opt/fastdfs/data/fdfs
    
    url_have_group_name = true
    
    log_filename=/opt/fastdfs/data/nginx/logs/log.log
    
    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=/opt/fastdfs/data/fdfs
    #store_path1=/home/yuqing/fastdfs1

    复制 http.conf 和 mime.types 文件到 /etc/fdfd/ :

    [root@admin ngx_openresty-1.7.10.1]# cd /opt/fastdfs/fastdfs-5.05/conf
    
    cp http.conf mime.types /etc/fdfs/

    创建软连接:

    ln -s /opt/fastdfs/data/fdfs/data /opt/fastdfs/data/fdfs/data/M00

    编辑配置文件:

    vim /usr/local/openresty/nginx/conf/nginx.conf
    #user  nobody;
    worker_processes  1;
    
    error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    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"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        server {
            listen       80;
            server_name  localhost;
    
            charset utf-8;
    
            #access_log  logs/host.access.log  main;
    
           # location / {
           #     root   html;
           #     index  index.html index.htm;
           # }
    
            location ~ /group[0-9]/M00 {
                root  /opt/fastdfs/data/fdfs/data;
                ngx_fastdfs_module;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ .php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #location ~ .php$ {
            #    root           html;
            #    fastcgi_pass   127.0.0.1:9000;
            #    fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #    include        fastcgi_params;
            #}
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /.ht {
            #    deny  all;
            #}
        }
    
    
        # another virtual host using mix of IP-, name-, and port-based configuration
        #
        #server {
        #    listen       8000;
        #    listen       somename:8080;
        #    server_name  somename  alias  another.alias;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    
        # HTTPS server
        #
        #server {
        #    listen       443 ssl;
        #    server_name  localhost;
    
        #    ssl_certificate      cert.pem;
        #    ssl_certificate_key  cert.key;
    
        #    ssl_session_cache    shared:SSL:1m;
        #    ssl_session_timeout  5m;
    
        #    ssl_ciphers  HIGH:!aNULL:!MD5;
        #    ssl_prefer_server_ciphers  on;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    }

    启动 Nginx 服务:

    /usr/local/openresty/nginx/sbin/nginx

    注意:

    进行授权:

    [root@admin logs]# chmod 777 /opt/fastdfs/data/nginx/logs/log.log

    //重新启动
    [root@admin logs]# /usr/local/openresty/nginx/sbin/nginx -s reopen

    9):配置FastDFS开机自启

    开机启动需要启动 fastdfs 和 nginx 在centos中,在/etc/rc.local文件中,就是配置开机启动项的。

    我们在这个文件中添加下面的配置:我们在这个文件中添加下面的配置:

    cd /etc   

    vim rc.local

    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart /usr/local/openresty/nginx/sbin/nginx

    这次在浏览器的地址栏中输入一下网址,就可以看到我们上传的图片了。

     启动关闭命令:

    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop || start
    
    /usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop  ||  start
    
    /usr/local/openresty/nginx/sbin/nginx -s stop  ||  start

    FastDFS 上传 java 源码:

  • 相关阅读:
    共识算法之争(PBFT,Raft,PoW,PoS,DPoS,Ripple)
    区块链:共识算法POW
    区块链目前的几大共识算法
    StringUtils.isEmpty和StringUtils.isBlank用法
    StringUtils.isEmpty和StringUtils.isBlank用法
    hyper-v 无线网连接
    hyper-v 无线网连接
    hyper-v 无线网连接
    hyper-v 无线网连接
    nat和静态映射
  • 原文地址:https://www.cnblogs.com/mlq2017/p/10072791.html
Copyright © 2011-2022 走看看