我们可能有这种场景:

集群环境下,多个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. Java面向对象之多态(向上、向下转型) 入门实例

    一.基础概念 多态: 重点是对象的多态性.某一事物的多种体现形态. 多态的作用: 1.提高了代码的扩展性,后期出现的功能,可以被之前的程序所执行. 2.不能使用子类特有的功能.只能使用覆盖父类的功能. ...

  2. docker kubernetes swarm spring cloud结合学习资源

    http://www.docin.com/p-2062732301.html https://blog.csdn.net/michael_hm/article/details/79213839 htt ...

  3. CentOS修改默认yum源为国内yum镜像源

    修改CentOS默认yum源为mirrors.163.com 1.首先备份系统自带yum源配置文件/etc/yum.repos.d/CentOS-Base.repomv /etc/yum.repos. ...

  4. HTTP原理 请求方法

    HTTP的工作过程 一次HTTP操作称为一个事务,其工作过程分为四步: 1.客户机与服务器建立连接:客户单击某个超级链接,HTTP的工作开始,接下来进行TCP连接的三次握手过程. 2.建立连接后,客户 ...

  5. Exadata 18.1新特性--计算节点升级增强

    新的计算节点升级增强能大幅缩短升级花费的时间,最快能减少40%的时间,具体的增强主要体现在以下方面: 1.计算节点操作系统的备份工作. 以前计算节点操作系统的备份工作是在正式升级之前执行,在滚动升级过 ...

  6. 红蓝对抗 - 蓝队手册(BTFM)(转载)

    本文已发表在嘶吼RoarTalk,未经授权,请勿转载! http://www.4hou.com/technology/10173.html 最佳阅读体验版:https://stackedit.io/v ...

  7. yalinqo 的使用...

    from($this->getInfo())->where('$v["is_enable"]==1')->where(function (&$v) use ...

  8. bzoj4548: 小奇的糖果 题解

    题目链接 题解 不包含所有颜色 就强制不选一个颜色 图中圆点颜色相同 矩形越大,包括的点一定不比其一小部分少 如图所示,最大矩形只有3种 离散化\(x\)坐标 然后按\(y\)排序 每次取出颜色的前驱 ...

  9. codeforces1073d Berland Fair 思维(暴力删除)

    题目传送门 题目大意:一圈人围起来卖糖果,标号从1-n,每个位置的糖果都有自己的价格,一个人拿着钱从q开始走,能买则买,不能买则走到下一家,问最多能买多少件物品. 思路:此题的关键是不能买则走到下一家 ...

  10. PHP验证身份信息

    $code = 'code'; $patt = "/^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(10|11|12))([012](\d|(30|31)))\d{3}[ ...