FastDFS分布式文件系统nginx模块安装和部署

2016/06/24 16:25
阅读数 218

上一篇文章讲了FastDFS分布式文件系统安装和部署,这篇文章主要描述如何安装、使用fastdfs-nginx-module和nginx实现通过Http方式访问FastDFS分布式文件系统中的文件。

FastDFS通过Tracker服务器将文件放在Storage服务器存储。但是同组之间的服务器需要复制文件有延迟的问题,假设Tracker服务器将文件上传到了192.168.1.80,并将文件ID返回给客户端。这时,后台会将这个文件复制到192.168.1.30,如果复制没有完成,客户端就用这个文件ID在192.168.1.30上获取文件,肯定会出现错误。fastdfs-nginx-module可以重定向连接到源服务器取文件,避免客户端由于复制延迟的问题,出现错误。(此说法来源于http://blog.itpub.net/29254281/viewspace-1288761/,不知道是否正确)

但是,从FastDFS v5.0.1开始,tracker server和storage server已经默认已经不支持Http访问。问过很多人,都是通过搭建nginx或Apache实现的Http访问。解决方法是,在每个存储服务(storage)都应该安装nginx和fastdfs_nginx_module模块,然后用单独一台nginx做反向代理。

安装方法

  1. 首先安装FastDFS存储服务器和客户端库
    FastDFS版本应该>=2.09。
    安装方法详见:FastDFS分布式文件系统安装和部署
  2. 下载FastDFS-nginx-module源码包并解压,例如:
    tar xzf fastdfs_nginx_module_v1.16.tar.gz

     

  3. 安装nginx的服务器
    FastDFS nginx模块在nginx 0.8.53通测试通过,余庆的nginx安装在“/usr/local/nginx”。
    进入nginx的源代码目录,编译和安装模块,如:
    cd nginx-1.5.12
    ./configure --add-module=/home/yuqing/fastdfs-nginx-module/src
    make
    make install
    如果提示下面错误,可以安装pcre模块:
    ./configure: error: the HTTP rewrite module requires the PCRE library.
    You can either disable the module by using --without-http_rewrite_module
    option, or install the PCRE library into the system, or build the PCRE library
    statically from the source with nginx by using --with-pcre=<path> option.
    sudo apt-get install pcre*
    若安装时找不到上述依赖模块,使用–with-openssl=<openssl_dir>、–with-pcre=<pcre_dir>、–with-zlib=<zlib_dir>指定依赖的模块目录。如已安装过,此处的路径为安装目录;若未安装,则此路径为编译安装包路径,nginx将执行模块的默认编译安装。

    也可以使用类似下面的命令跳过指定模块的安装:

    ./configure --without-http_gzip_module --add-module=/home/cjx/libs/fastdfs-nginx-module-master/src
    make
    make install

    注意: 编译之前,可以在config 文件中更改FDFS_OUTPUT_CHUNK_SIZE和FDFS_MOD_CONF_FILENAME宏:

    CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"

     

  4. 更改config文件“mod_fastdfs.conf”,将配置文件拷贝到“/etc/fdfs”
    sudo cp /home/cjx/libs/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/

    修改该配置文件:

    group_name=group1
    tracker_server=192.168.2.163:22122
    store_path0=/data/fastdfs/storage
    base_path=/data/fastdfs/storage

     

  5. 配置nginx的config文件,如nginx.conf,加上下面几行:
    	
    location /M00 {
                root /data/fastdfs/storage;
                ngx_fastdfs_module;
            }

     

  6. 如果在fastdfs-nginx模块的配置文件中指定了启动组名访问则需要改成下面的:

    location /group1/M00 {
                root /data/fastdfs/storage;
                ngx_fastdfs_module;
            }

     

  7. 创建一个符号链接 ${fastdfs_base_path}/data/M00 到 ${fastdfs_base_path}/data,在“/data/fastdfs/storage”目录下创建软连接,将其链接到实际存放数据的目录:
    ln -s /data/fastdfs/storage/data /data/fastdfs/storage/data/M00

     

关闭和启动nginx服务器

关闭和启动nginx可以使用下列命令:

/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx

 

 

展开阅读全文
打赏
0
5 收藏
分享
加载中
更多评论
打赏
0 评论
5 收藏
0
分享
返回顶部
顶部