Fastdfs与Nginx的整合

简介:

  fastdfs4.06版本以后,就不再支持自带的http服务了,如果需要使用http服务来访问文件,则可以与nginx结合部署,实现http服务。

 

硬件环境:

      tracker:192.168.189.146

      storage:192.168.189.145 (group1)

      storage:192.168.189.144 (group2)

软件环境:

      Tengine_2.0.3

      fastdfs-nginx-module_v1.15

 

    

  假设fastdfs集群已经搭建完成,现开始进行nginx的整合。


一:Fastdfsnginx的集群整合,本试验使用Tengine代替nginx

注意:4.0.6版本之后,fastdfs已经删除了http web的服务,因此需要与nginx整合,trackerstorage都需要配置nginx,其中storage需要结合nginx_fastdfs模块,tracker不需要,tracker上的nginx主要起代理调度作用。


1:下载tenginenginx_fastdfs模块到/usr/local/src目录   

     tengine下载地址:http://tengine.taobao.org/

     fastdfs-nginx-module下载地址:https://fastdfs.googlecode.com/files/fastdfs-nginx-module_v1.15.tar.gz

 

  2:解压,安装tengine  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# cd /usr/local/src && tar -zxvf tengine-2.0.3.tar.gz&& tar -zxvf fastdfs-nginx-module_v1.15.tar.gz
编辑fastdfs-nginx-module的编译文件,修改fastdfs路径
# vi fastdfs-nginx-module/src/config 
  ngx_addon_name=ngx_http_fastdfs_module
  HTTP_MODULES= "$HTTP_MODULES ngx_http_fastdfs_module"
  NGX_ADDON_SRCS= "$NGX_ADDON_SRCS$ngx_addon_dir/ngx_http_fastdfs_module.c"
  CORE_INCS= "$CORE_INCS /usr/local/fastdfs/include/fastdfs/usr/local/fastdfs/include/fastcommon/"
  CORE_LIBS= "$CORE_LIBS -L/usr/local/fastdfs/lib -lfastcommon -lfdfsclient"
CFLAGS= "$CFLAGS-D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024'-DFDFS_MOD_CONF_FILENAME='\"/usr/local/fastdfs/conf/mod_fastdfs.conf\"'"  
 
复制mod_fastdfs.conf到 /usr/local/fastdfs/conf/ 目录下
# cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /usr/local/fastdfs/conf
    
编译tengine
# cd tengine-2.0.3
# ./configure --prefix=/usr/local/tengine--add-module=/usr/local/src/fastdfs-nginx-module/src/    (tracker服务器无需添加此模块)
# make && makeinstall

 

  注:与fastdfs时,nginx开启可能失败,错误信息:error while loading sharedlibraries: libfastcommon.so: cannot open shared object file: No such file ordirectory,将/usr/local/fastdfs/lib 加入系统文件/etc/ld.so.conf中即可:

1
2
3
# vi vim/etc/ld.so.conf
# /usr/local/fastdfs/lib
# /sbin/ldconfig -v


 

 

二:mod_fastdfs.conftengine的配置:

  1:配置trackernginx192.168.189.146

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#vi/usr/local/tengine/conf/nginx.conf    (部分)
     upstream fastdfs_group1{
      server 192.168.189.145:80;
      }
    upstream fastdfs_group2{
      server 192.168.189.144:80;
    }
    server {
        listen       80;
        server_name  192.168.189.146;
   location  /group1  {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http: //fastdfs_group1 ;
        }
    location  /group2  {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http: //fastdfs_group2 ;
        }


  2:配置storage group1mod_fastdfsnginx192.168.189.145

1
2
3
4
5
6
7
8
配置mod_fastdfs.conf
# vi/usr/local/fastdfs/conf/mod_fastdfs.conf
  base_path= /tmp                  (日志存放路径)
  load_fdfs_parameters_from_tracker= true 
  tracker_server=192.168.189.146:22122  (指定tracker)
  group_name=group1                 (指定本机group)
  url_have_group_name =  true          (允许在url中出现group名)
  store_path0= /data/fastdfs/storage        (数据路径)
1
2
3
4
5
6
7
8
9
10
11
配置nginx.conf
#vi/usr/local/tengine/conf/tengine   (部分)
  server {
         listen       80;
         server_name  192.168.189.145;
  
  
         location  /group1/M00  {
             root  /data/fastdfs/storage/data ;
             ngx_fastdfs_module;
         }


  3:配置storage group2mod_fastdfsnginx192.168.189.144

1
2
3
4
5
6
7
8
配置mod_fastdfs.conf
# vi/usr/local/fastdfs/conf/mod_fastdfs.conf
  base_path= /tmp                 
  load_fdfs_parameters_from_tracker= true 
  tracker_server=192.168.189.146:22122  
  group_name=group2                 
  url_have_group_name =  true         
  store_path0= /data/fastdfs/storage
1
2
3
4
5
6
7
8
9
10
11
配置nginx.conf
#vi/usr/local/tengine/conf/tengine   (部分)
  server {
         listen       80;
         server_name  192.168.189.144;
  
  
         location  /group2/M00  {
             root  /data/fastdfs/storage/data ;
             ngx_fastdfs_module;
         }


 

三:启动trackerstoragenginx

1
2
3
4
5
6
Tracker(146):
# /usr/local/tengine/sbin/nginx -c /usr/local/tengine/conf/nginx.conf
Storagegroup1(145):
# /usr/local/tengine/sbin/nginx -c /usr/local/tengine/conf/nginx.conf
Storage group1(144):
# /usr/local/tengine/sbin/nginx -c /usr/local/tengine/conf/nginx.conf


四:测试文件上传、下载:(146)

 1:测试上传:

wKioL1dnXYqTROI1AAARjfEYrJs210.png  

 

 2:下载文件:

   从上可以看到文件上传至goup1,在本实验中即145服务器,可以直接访问145服务器或者访问146tracker服务器获得文件:

   http://192.168.189.145/group1/M00/00/00/oYYBAFP7cHCAdhXQAByq1ZoT93o438.JPG

   or

         http://192.168.189.146/group1/M00/00/00/oYYBAFP7cHCAdhXQAByq1ZoT93o438.JPG

wKioL1dnXeWRHFPQAAfQCACScWA921.png

wKiom1dnXemDn8k3AATrUwgCWy0031.png










本文转自 icenycmh 51CTO博客,原文链接:http://blog.51cto.com/icenycmh/1790955,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
存储 应用服务中间件 数据库
C++文件服务器项目—Nginx+FastDFS插件—5
C++文件服务器项目—Nginx+FastDFS插件—5
40 0
|
5月前
|
C++
BQ云盘项目一 -- nginx+fastcgi+fastdfs+mysql+redis+c/c++
BQ云盘项目一 -- nginx+fastcgi+fastdfs+mysql+redis+c/c++
|
9月前
|
应用服务中间件 测试技术 vr&ar
28个案例问题分析---17---生产环境混用带来的影响--nginx,fastdfs
28个案例问题分析---17---生产环境混用带来的影响--nginx,fastdfs
64 0
|
10月前
|
网络协议 应用服务中间件 Shell
docker安装nginx+fastdfs(完整版)
docker安装nginx+fastdfs(完整版)
476 0
|
消息中间件 存储 JSON
面试:第八章:SpringMVC、Springboot、Mybatis、Dubbo、Zookeeper、Redis、Elasticsearch、Nginx 、Fastdfs、ActiveMQ(下)
面试:第八章:SpringMVC、Springboot、Mybatis、Dubbo、Zookeeper、Redis、Elasticsearch、Nginx 、Fastdfs、ActiveMQ
123 0
面试:第八章:SpringMVC、Springboot、Mybatis、Dubbo、Zookeeper、Redis、Elasticsearch、Nginx 、Fastdfs、ActiveMQ(下)
|
SQL 缓存 NoSQL
面试:第八章:SpringMVC、Springboot、Mybatis、Dubbo、Zookeeper、Redis、Elasticsearch、Nginx 、Fastdfs、ActiveMQ(上)
面试:第八章:SpringMVC、Springboot、Mybatis、Dubbo、Zookeeper、Redis、Elasticsearch、Nginx 、Fastdfs、ActiveMQ
面试:第八章:SpringMVC、Springboot、Mybatis、Dubbo、Zookeeper、Redis、Elasticsearch、Nginx 、Fastdfs、ActiveMQ(上)
|
存储 应用服务中间件 Linux
FastDFS+Nginx实现文件服务器
FastDFS+Nginx实现文件服务器
FastDFS+Nginx实现文件服务器
|
应用服务中间件 文件存储 nginx
整合FastDFS与Nginx,使生成的文件URL能够通过浏览器访问
整合FastDFS与Nginx,使生成的文件URL能够通过浏览器访问
整合FastDFS与Nginx,使生成的文件URL能够通过浏览器访问
|
存储 运维 负载均衡
Centos搭建FASTDFS+NGINX
Centos搭建FASTDFS+NGINX
Centos搭建FASTDFS+NGINX
|
存储 机器学习/深度学习 负载均衡
Nginx && FastDFS实现分布式文件服务器
Nginx && FastDFS实现分布式文件服务器
Nginx && FastDFS实现分布式文件服务器