我们可能有这种场景:

集群环境下,多个web容器需要请求一个共享目录下的文件,比如保存图片或者录音文件,任意一个节点保存后其他节点需要及时获取,此时就需要目录进行同步了,否则Nginx负载到任意一个节点上请求文件时,找不到文件将返回404,这时候linux下可以用rsync处理,但是rsync双向同步有很多问题,在jekins环境下很多很多问题,不建议使用。

这里建议用nfs处理,或者用其他分布式文件系统如gfs或者ceph等,或者直接将这些文件放到cdn(看项目大小,财气是否够粗够硬),考虑文件很多性能问题建议cdn,其次gfs,ceph,最low的nfs处理吧。

处理分3个步骤:

1)安装nfs

2)配置nfs

3)配置tomcat 虚拟目录

1.1)安装nfs

  yum install nfs-utils portmap nfs4-acl-tools  (每个节点分别执行)

1.2)各自节点(tomcat所在linux)

  mkdir -p /data/nfs

  chown -R tomcat:tomcat /data/nfs

  chmod -R 777 /data/nfs

  以上3条命令每个节点分别执行

2.1)nfs server(只有一个server,选用一个节点,其他均为客户端)配置

  vi /etc/exports

  添加如下内容:

    /data/nfs *(rw,sync)

2.2)启动nfs服务

  centos redhat 5版本执行:

    service portmap restart

    service nfs restart

    

    让nfs随机启动:

      chkconfig portmap on

      chkconfig nfs on

  centos redhat 6版本执行:

    service rpcbind restart

    service nfs restart

    让nfs随机启动:

      chkconfig rpcbind on

      chkconfig nfs on

2.3)客户端挂载nfs文件系统

   a、关闭防火墙(各节点分别执行,或者添加iptables策略)

    service iptables stop

    chkconfig iptables off

   b、挂载nfs

     mount -t nfs 10.0.0.1:/data/nfs /data/nfs

     上面10.0.0.1为nfs server ip地址,上面这条命令各节点分别执行

   这时客户端节点执行df -h命令应该能看到nfs挂载点文件系统了

3.1)tomcat配置虚拟目录

  server.xml中添加host:

    <Context path="/mp3" docBase="/data/nfs" reloadable="true"></Context

以上tomcat就可以访问webapp(deploy目录)外的文件了,我们可以通过http://ip:端口/工程名/mp3/001.mp3访问我们的音频文件了,nginx不管分发到哪个节点tomcat都不会返回404了,因为任意一个节点往nfs目录下写文件实际上时写到nfs server文件系统上,其他tomcat节点均可以访问。

以上教程比较简易,如遇问题可以邮件跟我联系dba_xyx@hotmail 

分布式环境Tomcat多节点集群下共享目录配置,tomcat虚拟目录+nfs的更多相关文章

  1. nginx+tomcat+redis的集群+session共享

    nginx+tomcat+redis的集群+session共享 环境准备 1.tomcat版本:tomcat7 tomcat下载及安装,目前很多好的资源和步骤,此处省略. 2.jdk版本:jdk1.7 ...

  2. tomcat8.0.15+spring4.1.2的集群下共享WebSocketSession?

    环境:nginx+Tomcat服务器 A B C   问题:如果用户 1 访问由服务器 A socket服务  ,用户2 由服务器 C socket服务  ,此时如果用户 1, 2 想通过  sock ...

  3. Spring-3.2.5 + Quartz-2.2.1 集群实例(Tomcat+Memcached+Quartz集群session共享)

    本例中我启动了两个Tomcat作效果测试,先看效果图: 现在我们关闭一个Tomcat 注意红线的位置和设置的参数有关 #org.quartz.jobStore.clusterCheckinInterv ...

  4. Spring-4.0 + Quartz-2.2.1 集群实例(Tomcat+Memcached+Quartz集群session共享)还是没有解决Serializable序列化

  5. 1.Apache+Tomcat负载均衡+集群配置

    1.本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置. 准备环境 Apache Apache是 ...

  6. Windows下ELK环境搭建(单机多节点集群部署)

    1.背景 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时 ...

  7. 分布式实时日志系统(一)环境搭建之 Jstorm 集群搭建过程/Jstorm集群一键安装部署

    最近公司业务数据量越来越大,以前的基于消息队列的日志系统越来越难以满足目前的业务量,表现为消息积压,日志延迟,日志存储日期过短,所以,我们开始着手要重新设计这块,业界已经有了比较成熟的流程,即基于流式 ...

  8. was集群下基于接口分布式架构和开发经验谈

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/luozhonghua2014/article/details/34084935    某b项目是我首 ...

  9. 用redis实现TOMCAT集群下的session共享

    上篇实现了 LINUX中NGINX反向代理下的TOMCAT集群(http://www.cnblogs.com/yuanjava/p/6850764.html) 这次我们在上篇的基础上实现session ...

随机推荐

  1. Javascript 上传文件到Azure存储

    对一些前端工程师来讲,使用javascript上传文件到Azure存储中可能是需要掌握的技能,希望这篇博客能给到帮助. 在开始前我们需要了解以下几点: 共享访问签名(Shared Access Sig ...

  2. 【AT2434】JOI 公園 (JOI Park) 最短路+贪心

    题解 我的歪解 我首先想的是分治,我想二分肯定不行,因为它是没有单调性的. 我想了一下感觉它的大部分数据应该是有凸性的(例如\(y=x^2\)的函数图像),所以可以三分. 下面是我的三分代码(骗了不少 ...

  3. 【离散数学】 SDUT OJ 集合的包含

    集合的包含 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 已知含n个元素的集合的子集 ...

  4. 关于 SimpleMembership 中 CreateDate 的问题

    使用 WebMatrix.WebData.WebSecurity.CreateUserAndAccount(model.UserName, model.Password,                ...

  5. 在StoryBoard对UICollectionViewCell 进行Autolayout是遇到的Xcode6.01的BUG

    使用Sb对UICollectionViewCell 的内容进行Autolayout约束时候,发现了一个Xcode6.01的BUG,就是你对UICollectionCell约束完了之后,在模拟器上现实的 ...

  6. 洛谷 P1372 又是毕业季I

    可能所有的数论题都是这样玄学.... 题目链接:https://www.luogu.org/problemnew/show/P1372 这道题通过暴力的枚举可以发现是不可做的(当然我也不会做) 然后就 ...

  7. 添加win10激活工具

    其实我们可以随便准备一个win10的激活密钥激活! 以管理员的身份进入到CMD下.. slmgr.vbs /upk                清除掉旧的slmgr /ipk W269N-WFGWX ...

  8. javascript的代码块

    a block of code 注意到这个问题是在看书的时候,中文版中出现“代码片段”这样的词语,于是就去翻看了英文版的原书.书中的用了a block of code,难道不应该翻译成代码块吗?(作为 ...

  9. 老男孩python作业4-ATM程序开发

    实现一个ATM + 购物商城程序: 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 支持多账户登录 支持账户间转账 记录每月日常消费流水 提供还款 ...

  10. Python web前端 02 CSS

    Python web前端 02 CSS 一.选择器 1.CSS的几种样式(CSS用来修饰.美化网页的) #建立模板 复制内容--->SETTING---> Editor -----> ...