`
flychao88
  • 浏览: 751919 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Nginx+Tomcat+FastDFS文件下载模块讲解

 
阅读更多

      本文主要以示例的方式讲解,如何简单快速的搭建一个nginx+tomcat结合FastDFS文件系统,进行文件下载的文章,Nginx可以直接配置FastDFS下载,由于在实战中用处不是很大,所以暂时不讲。

      1、首先下载nginx安装包,解压并运行。

      关于nginx的安装详看http://flychao88.iteye.com/blog/1963365一文。

      关于nginx.conf文件的内容如下所示:

     

#user  nobody;
worker_processes  2;

#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;

    sendfile        on;
    #tcp_nopush     on;

    access_log  logs/access.log;  
  
    keepalive_timeout  65;
#   gzip  on;

    server {
        listen       80;
        server_name aa.bb.com;
        location / {  
                    proxy_connect_timeout   3;  
                    proxy_send_timeout      30;  
                    proxy_read_timeout      30;  
                    proxy_pass http://localhost;
       }  
    }

    upstream localhost {     
         server localhost:8080 weight=10;  
         server localhost:8081 weight=10;  
    }  

   注:proxy_pass后面的url域名必须要和upstream后面的标识保持一致。

 

         2、下载并配置二个tomcat,配置tomcat端口号为:8080和8081

         3、下载并安装FastDFS。

               具体请参见http://flychao88.iteye.com/blog/1725285

         4、配置spring文件如下:

             

<bean class="com.jd.fastdfs.Configuration" id="configuration"/>
    <bean id="trackerGroup" class="com.jd.fastdfs.TrackerGroup">
        <property name="configuration" ref="configuration"/>
        <property name="trackerServers">
            <list value-type="java.lang.String">
                <value>10.12.146.90:22122</value>
            </list>
        </property>
    </bean>
    <bean id="fastdfsHelper" class="com.jd.fastdfs.FastdfsHelper">
        <property name="trackerGroup" ref="trackerGroup" />
    </bean>

 

            5、配置struts.xml 文件。
<action name="oper_*"  class="fastDFSclientAction" method="{1}">
      <result name="success" type="velocity">/pages/upload.vm</result>
      <result name="downLoad" type="stream">
          <param name="contentType">application/x-zip-compressed</param>
          <param name="contentDisposition">attachment;filename="${fileName}"</param>
          <param name="inputName">downLoadFile</param>
      </result>
</action>
            6、开发Action类,代码如下:
package com.jd.paysettle.action;

import com.jd.common.struts.action.BaseAction;
import com.jd.common.web.result.Result;
import com.jd.fastdfs.FastdfsHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;

/**
 * User: root
 * Date: 13-10-28
 * Time: 上午3:59
 */
public class FastDFSClientAction extends BaseAction {
    private static final long serialVersionUID = -5163525262758695901L;
    private static final Logger log = LoggerFactory.getLogger(RefundAuditAction.class);

    @Autowired
    private FastdfsHelper fastdfsHelper;
    private String fileUrl = "";
    private InputStream downLoadFile;
    private String fileName;

    public String update() throws Exception {
        String[] uploadFile = fastdfsHelper.upload("group1","/root/FastDFS_v4.05.tar.gz");
        fileUrl = uploadFile[1];
        Result result = new Result();
        result.addDefaultModel("fileUrl", fileUrl);
        toVm(result);
        return SUCCESS;
    }

    public String download() throws Exception {
        byte[] bytes = fastdfsHelper.download("group1",fileUrl);
        downLoadFile = new ByteArrayInputStream(bytes);
        fileName = "fastdfs"+System.currentTimeMillis()+".tar.tz";

        return "downLoad";
    }

    public InputStream getDownLoadFile() {
        return downLoadFile;
    }

    public void setDownLoadFile(InputStream downLoadFile) {
        this.downLoadFile = downLoadFile;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public String getFileUrl() {
        return fileUrl;
    }

    public void setFileUrl(String fileUrl) {
        this.fileUrl = fileUrl;
    }
}

            7、HTML页面内容如下:
<body>
    <br><br>upload file is : 
<a href="/paysettle/oper_download.action?fileUrl=${fileUrl}">${fileUrl}</a>
</body>
 
     8、结果如下:
 

 

   

 

 

 

 

 

 

关于JAVA版的FastDFS客户端,本人已经封装完毕,如果有哪位朋友需要,可以单独找我。

  • 大小: 3.4 KB
分享到:
评论
4 楼 jidangrensheng 2016-07-07  
看到楼主对FastDFS的封装,可以发我一份吗?邮箱:2113005140@qq.com,谢谢
3 楼 0095103cn 2016-02-18  
可以给我一个封装好的FastDFS客户端 么 0095103cn@gmail.com
2 楼 atian15 2015-11-27  
感谢分享,看到博主有针对fastDFS的客户端通过spring进行二次封装,能否发份代码参考下,邮箱:atian15@163.com
1 楼 lianghuahuang 2014-01-22  
感谢分享,看到博主有针对fastDFS的客户端通过spring进行二次封装,能否发份代码参考下,邮箱:huahuangliang@sina.com

相关推荐

    Nginx+tomcat+redis

    配置Nginx+Tomcat+Redis环境时,可能会用到各种依赖包,如编译工具、库文件、配置脚本等。这些包确保所有组件能够正常安装和运行。 综上,"Nginx+Tomcat+Redis"的架构为构建高可用、高性能的Web服务提供了坚实的...

    Nginx+tomcat配置集群负载均衡实例

    在IT行业中,构建高效、可扩展的Web服务是至关重要的,而"Nginx+Tomcat"的组合常被用于实现这一目标。本实例将详细阐述如何通过Nginx配置集群负载均衡,以实现动静分离,提升系统性能和稳定性。 首先,Nginx是一款...

    nginx+tomcat+redis完成session共享

    这个小例子"nginx+tomcat+redis完成session共享"旨在演示如何通过这三种技术实现跨服务器的用户会话共享,以提升用户体验并简化系统管理。以下是这些技术及其在会话共享中的作用: 1. **Nginx**:Nginx是一款高性能...

    windows服务器部署 nginx+tomcat+mysql服务器端部署 阿里云服务器部署及配置

    详细说明了windows服务器nginx+tomcat+mysql部署及配置(配置阿里云后台安全组,配置域名)很适合新手学习 附件中包含: 1.操作说明文档 2.操作录屏 3.安装所用到的软件安装包 1)Windows Server 2019 数据中心版 ...

    Nginx++Keepalived+Tomcat负载均衡&动静分离

    Nginx++Keepalived+Tomcat负载均衡&动静分离配置 本文主要介绍了Nginx、Keepalived和Tomcat的负载均衡和动静分离配置,旨在帮助读者了解如何搭建高可用、高性能的Web应用系统。 一、环境准备 在开始配置之前,...

    nginx+tomcat7+memcached session会话保持

    最后,提供的压缩包文件`nginx+tomcat+memcached`可能包含了上述所有组件的配置文件、jar包和安装脚本,帮助用户快速搭建和测试这样的系统。在部署时,务必根据实际网络环境和服务器配置进行适当的调整,确保所有...

    linux下的nginx+tomcat负载均衡简单原理

    "Linux 下的 Nginx+Tomcat 负载均衡简单原理" Linux 下的 Nginx+Tomcat 负载均衡简单原理是指通过 Nginx 服务器来实现 Tomcat 服务器集群的负载均衡,以提高网站的可用性和性能。本文将对 Linux 下的 Nginx+Tomcat ...

    国产中标麒麟操作系统nginx+tomcat+redis+mysql安装部署手册(精).docx

    《国产中标麒麟操作系统Nginx+Tomcat+Redis集群安装部署手册》是针对在中标麒麟操作系统上搭建Web服务环境的详细指南。这份手册由东软集团股份有限公司于2019年12月编撰,旨在解决在实际部署过程中可能出现的各种...

    Nginx+keepalived+tomcat实现性负载均衡(包含需要的包)

    在构建高性能、高可用性的Web服务时,使用Nginx+keepalived+tomcat的组合可以实现强大的负载均衡和故障转移功能。这个方案的核心思想是利用Nginx作为前端反向代理服务器,通过keepalived来确保服务的高可用性,并将...

    Nginx+KeepAlived+Tomcat负载架构

    ### Nginx+KeepAlived+Tomcat负载架构详解 #### 一、概述 随着互联网应用的日益增多,单一服务器已经难以满足高并发、高可用性的需求。因此,越来越多的企业开始采用集群技术来提高系统的稳定性和扩展性。本文将...

    nginx+tomcat+ssl_https

    在构建高性能、高可用性的Web服务时,"nginx+tomcat+ssl_https"是一个常见的组合。这个组合将轻量级的Nginx反向代理服务器与强大的Java应用服务器Tomcat结合,同时通过SSL/TLS协议提供安全的HTTPS连接。下面我们将...

    nginx+tomcat7+memcached所需jar.zip

    nginx+tomcat7+memcached所需jar.zipnginx+tomcat7+memcached所需jar.zipnginx+tomcat7+memcached所需jar.zipnginx+tomcat7+memcached所需jar.zip

    nginx+tomcat+memcache

    基于nginx+tomcat+memcache的负载均衡架构

    Nginx+Tomcat+Redis搭建均衡负载集群

    在构建高性能、高可用性的Web服务时,"Nginx+Tomcat+Redis"的组合是一种常见的架构模式。这个架构利用Nginx作为反向代理和负载均衡器,Tomcat作为Java应用服务器处理业务逻辑,而Redis则用作缓存系统以提升数据访问...

    nginx+tomcat+mysql部署java服务应用详细步骤

    利用yum(黄狗)安装nginx,mysql,通过下载tomcat,jdk并安装。此处用mysql数据库(修改明文密码为复杂密码,不区分大小写设置)。设置tomcat,nginx相应的端口,路径等等。有需要即下载吧!

    Nginx+Tomcat负载均衡企业实战.docx

    Nginx+Tomcat负载均衡企业实战.docx 本文档主要介绍了 Nginx+Tomcat 负载均衡的企业实战,涵盖了从0开始构建 Nginx WEB 平台、Tomcat WEB 集群、代码发布、Nginx 负载均衡 Tomcat 集群、动静分离、Rewrite 实战等...

    Nginx+tomcat

    ### Nginx+Tomcat 实现高性能负载均衡的详细解析 #### 一、概述 在现代互联网架构中,为了提高网站或应用的可用性和性能,通常会采用负载均衡技术来分发请求到多个服务器上执行。其中,Nginx 和 Tomcat 组合是一种...

    nginx+tomcat+redis集群部署环境

    nginx+tomcat+redis集群部署环境,包括nginx tomcat redis及集群部署所需jar包,jedis-2.6.1.jar,commons-pool2-2.2.jar,tomcat-redis-session-manager1.2.jar 具体步骤可以参见我的博文

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置

    keepalived+nginx+tomcat+redis+mysql所需的jdk包

    这个压缩包包含了"keepalived+nginx+tomcat+redis+mysql"所需的基础组件,特别是Java Development Kit(JDK)。下面我们将详细探讨这些组件及其在IT领域的应用。 首先,JDK是Java编程语言的基石,它提供了编译、...

Global site tag (gtag.js) - Google Analytics