FastDFS + nginx 单点部署

来源:互联网 发布:数据管控体系 编辑:程序博客网 时间:2024/06/16 09:05

第一步:libfastcommon安装

FastDFS_v5.05依赖libfastcommon,不再依赖libevent

  unzip libfastcommon-master.zip -d /usr/local
    cd /usr/local/libfastcommon-master
    ./make.sh
    ./make.sh install
libfastcommon.so默认安装到了/usr/lib64/libfastcommon.so,而FastDFS主程序设置的lib目录是/usr/local/lib,所以设置软连接
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so

ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so     

第二步:FastDFS安装

1)tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local
cd /usr/local/FastDFS
./make.sh
./make.sh install
cd /etc/fdfs
         2) FastDFS安装完毕后,修改tracker.conf、storage.conf、client.conf配置文件。将/etc/fdfs 下的3个配置文件的名字去掉sample。

      在/usr/local 目录下创建目录:    
mkdir /home/fastdfs/tracker
mkdir /home/fastdfs/storage
        mkdir /home/fastdfs/data     
mkdir /home/fastdfs/client     
mkdir /home/fastdfs/mod

首先修改tracker.conf配置文件
base_path=/home/fastdfs/tracker #用于存放日志。
其次修改storage.conff配置文件
         base_path=/home/fastdfs/storage #用于存放日志。  
                 store_path0=/home/fastdfs/data #存放数据,若不设置默认为前面那个。  
                  tracker_server=192.168.0.230:22122 #指定tracker服务器地址。  
   最后修改client.conff配置文件
base_path=/home/fastdfs/client #用于存放日志。  
tracker_server=192.168.0.230:22122 #指定tracker服务器地址。 
3)    启动tracker、storage
fdfs_trackerd  /etc/fdfs/tracker.conf
fdfs_storaged etc/fdfs/storage.conf
4) 检查进程
ps -ef |grep fdfs
5)   上传/删除  测试
使用自带的fdfs_test来测试,使用格式如下:
fdfs_test /etc/fdfs/client.conf upload /home/01.jpg 

成功
group_name=group1, ip_addr=192.168.29.132, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580.jpg
...
example file url: http://192.168.29.132/group1/M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580.jpg
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580_big.jpg
...
example file url: http://192.168.29.132/group1/M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580_big.jpg
使用fdfs_delete_file来删除文件,格式如下:
fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgdhFTV11uAXgKWAPk-Io7D4w8667.jpg
可以看到,上传ok了,这里会生成两个文件,这是fastdfs的主/从文件特性,以后再介绍。example file url是不能在浏览器中直接打开的,除非配合nginx使用,这里我不需要了。删除文件需要完整的group_name和


第三步:在所有storage节点安装fastdfs-nginx-module

 fastdfs-nginx-module 作用说明 
    FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储,但是同组存储服务器之间需要进入 文件复制,有同步延迟的问题。假设 Tracker 服务器将文件上传到了 ip01,上传成功后文件 ID 已经返回给客户端。此时 FastDFS 存储集群机制会将这个文件同步到同组存储 ip02,在文件还 没有复制完成的情况下,客户端如果用这个文件 ID 在 ip02 上取文件,就会出现文件无法访问的 错误。而 fastdfs-nginx-module 可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的 文件无法访问错误。(解压后的 fastdfs-nginx-module 在 nginx 安装时使用)

1)解压 fastdfs-nginx-module_v1.16.tar.gz

2)修改 fastdfs-nginx-module 的 config 配置文件

cd fastdfs-nginx-module/srcvim config

CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/" 

修改为:

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"


3)复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录,并修改

cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/ 
vi /etc/fdfs/mod_fastdfs.conf
4)修改/etc/fdfs/mod_fastdfs.conf文件

connect_timeout=10base_path=/home/fastdfs/modtracker_server=192.168.0.230:22122storage_server_port=23000group_name=group1url_have_group_name = truestore_path0=/home/fastdfs/data  
5) 复制 FastDFS 的部分配置文件到/etc/fdfs 目录

cd /usr/local/src/FastDFS/conf
cp http.conf mime.types /etc/fdfs/

第四步:编译安装nginx

需要文件:1). openssl-1.0.2k  2). pcre-8.40   3). zlib-1.2.11

./configure   --prefix=/usr/local/nginx-1.10.1  --add-module=/usr/local/src/fastdfs-nginx-module/src--with-zlib=/usr/local/zlib-1.2.8/  --with-pcre=/usr/local/pcre-8.40/ --with-openssl=/usr/local/openssl-1.0.2k/  --with-mail --with-mail_ssl_module   --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_realip_module --with-http_ssl_module

第五步:配置nginx

user nobody;

worker_processes 1;

events {

    worker_connections 1024;

}

http {

    include mime.types;

    default_type application/octet-stream;

    sendfile on;

    keepalive_timeout 65;

    server {

        listen 8888;

        server_name localhost;

        location ~/group([0-9])/M00 {

            ngx_fastdfs_module;

        }

        error_page 500 502 503 504 /50x.html;

 

        location = /50x.html {

            root html;

        }

    }

}

 A、8888 端口值是要与/etc/fdfs/storage.conf 中的 http.server_port=8888 相对应, 因为 http.server_port 默认为 8888,如果想改成 80,则要对应修改过来。
 B、Storage 对应有多个 group 的情况下,访问路径带 group 名,如/group1/M00/00/00/xxx, 对应的 Nginx 配置为:

     location ~/group([0-9])/M00 {         ngx_fastdfs_module;}

C、如查下载时如发现老报 404,将 nginx.conf 第一行 user nobody 修改为 user root 后重新启动。


第六步:启动nginx

在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录 

ln -s /home/fastdfs/storage/data/ /home/fastdfs/storage/data/M00

0 0
原创粉丝点击