q66262 发表于 2019-1-31 13:31:45

FastDFS 应用测试

配置nginx为storage server提供http访问接口:
  ==============================================================================
  背景:

[*]  在大多数业务场景中,往往需要为FastDFS存储的文件提供http下载服务,而尽管FastDFS在其storage及tracker都内置了http服务, 但性能表现却不尽如人意;
[*]  作者余庆在后来的版本中增加了基于当前主流web服务器的扩展模块(包括nginx/apache),其用意在于利用web服务器直接对本机storage数据文件提供http服务,以提高文件下载的性能。

  描述:

[*]  nginx 配置在storage节点上(本例以storage节点的node2为例);
[*]  因为 nginx 要想连接 fastdfs 就必须要有相应的模块,所以要编译安装 nginx 把fastdfs-nginx-module 模块编译进去

  步骤如下:

  1.首先下载 fastdfs-nginx-module 和 编译安装nginx 的源码包
# 从官方站点上克隆 fastdfs-nginx-module 模块
# git clone https://github.com/happyfish100/fastdfs-nginx-module.git
Cloning into 'fastdfs-nginx-module'...
remote: Counting objects: 57, done.
remote: Total 57 (delta 0), reused 0 (delta 0), pack-reused 57
Unpacking objects: 100% (57/57), done.
# 准备好的nginx源码包如下
# ls
fastdfs-nginx-modulenginx-1.10.0.tar.gz
# tar xf nginx-1.10.0.tar.gz
# ls
fastdfs-nginx-modulenginx-1.10.0nginx-1.10.0.tar.gz  2.准备编译安装的环境
yum groupinstall "Development Tools" "Server Platfrom Development" -y
yum install pcre-devel openssl-devel zlib-devel -y  3.创建 nginx 用户编译安装nginx,指明 fastdfs-nginx-module 模块的位置
# useradd -r nginx
# ls
autoCHANGESCHANGES.ruconfconfigurecontribhtmlLICENSEMakefilemanobjsREADMEsrc
# ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log
--pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx
--with-http_ssl_module --with-http_stub_status_module --with-pcre --add-module=/root/fastdfs/fastdfs-nginx-module/src
# make && make install  3、复制配置文件
# cp fastdfs-nginx/module/src/mod_fastdfs.conf/etc/fdfs/
# cp fastdfs-5.0.8/conf/{httpd.conf,mime.types}/etc/fdfs/
   注意:fastdfs-5.0.8为fastdfs源码目录;  4、配置/etc/fdfs/mod_fastdfs.conf配置文件,部分指令类似如下所示;
base_path=/data/fdfs/storage
tracker_server=192.168.1.112:22122
storage_server_port=23000
group_name=group1
url_have_group_name = true
store_path_count=1
store_path0=/data/fdfs/storage/0

group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/data/fdfs/storage/0  5、配置nginx,编辑nginx.conf,在server中添加类似如下内容:
location ~ /group+/M00/ {
      root /data/fdfs/storage/0/data/;
      ngx_fastdfs_module;
}  6、为存储文件路径创建链接至M00,此示例中使用的storage_path0为/data/fdfs/storage/0;
# ln -sv /data/fdfs/storage/0/data/fdfs/storage/0/M00
# ll /data/fdfs/storage/0/
total 12
drwxr-xr-x 258 root root 8192 Mar 24 11:50 data
lrwxrwxrwx   1 root root   20 Mar 24 11:23 M00 -> /data/fdfs/storage/0  7、启动nginx服务即可;
# pwd
/usr/local/nginx/sbin
# ./nginx -t
ngx_http_fastdfs_set pid=27041
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# ./nginx
# ps aux| grep 'nginx'
root      270110.00.1528801160 ?      Ss   11:25   0:00 nginx: master process ./nginx
nginx   270120.00.2555242516 ?      S    11:25   0:00 nginx: worker process  8、上传文件,测试:
# node3 节点上传文件
# fdfs_upload_file /etc/fdfs/client.conf /usr/share/wallpapers/Autumn/contents/images/1600x1200.jpg
group1/M00/00/00/wKgBcVjUlzqAEyeUAAxFCUUQ0Sc981.jpg
# fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/wKgBcVjUlzqAEyeUAAxFCUUQ0Sc981.jpg
source storage id: 0
source ip address: 192.168.1.113
file create timestamp: 2017-03-24 11:49:14
file size: 804105
file crc32: 1158730023 (0x4510D127)
# fdfs_upload_file /etc/fdfs/client.conf /usr/share/wallpapers/Hanami/contents/images/1920x1200.jpg
group1/M00/00/00/wKgBcljUGkCAEkdsAAqAdF8ZgSw271.jpg
# fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/wKgBcljUGkCAEkdsAAqAdF8ZgSw271.jpg
source storage id: 0
source ip address: 192.168.1.114
file create timestamp: 2017-03-24 02:56:00
file size: 688244
file crc32: 1595506988 (0x5F19812C)  9.在浏览器中访问路径的URL为fid:
https://s2.运维网.com/wyfs02/M00/8F/21/wKioL1jUmSWRViUyAAf6fQEPP3E530.png
  

  

  

  

  

  

  

  

  




页: [1]
查看完整版本: FastDFS 应用测试