apache tomcat 集群!
公司需要一个内部测试局域网, 要求可以支持3000并发访问!以前也没做过服务器这方面、临时抱佛脚,查看了N多文档,他人经验,布置好之后,又遇到了N多问题,功夫不负有心人、终于还是完成了要求!观他人的布置经验- 总有不全的地方,所以把自己的经历写下来、作后来使用!
接到了这个任务、首先我想到的是apache httpserver 与tomcat集群.
一、环境: win7 4cpu 8G!
二、软件:apache2.25 tomcat7 jre7u55
三、apache2.25安装、这个比较简单 一路next 、 唯一需要注意的是:apache 默认使用的80端口,安装之前看一下此端口有没有被占用,如有,关闭了它!
运行cmd 输入命令netstat -ano|findstr "80" !
配置apache
- 安装目录apache下找到conf/httpd.conf  找到mod_proxy.so 、mod_proxy_ajp.so、mod_proxy_balancer 取消注释,如下:
LoadModule proxy_module modules/mod_proxy.so #mod 代理
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so #ajp协议
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so #tomcat集群 - 启用httpd-mpm.conf   、httpd-vhosts.conf   文件,  找到并取消注释 如下:
Include conf/extra/httpd-vhosts.conf #定义服务器 如何定义后面会讲
Include conf/extra/httpd-mpm.conf #优化apache 如何优化后面会讲 - 配置代理集群对象在文件最后添加如下代码
<proxy balancer://cluster> BalancerMember ajp://127.0.0.1:8009 loadfactor=2 route=jvm1 BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm3 </proxy>
loadfactor:代表tomcat调用权重,这里表示当有3个请求进来时,apache 分配2个请求给jvm1标识的tomcat,1个请求给jvm3标识的tomcat! route:代表apache使用apache协议对tomcat的标识,具体配置会在tomcat配置里面讲! route:代表apache使用apache协议对tomcat的标识,具体配置会在tomcat配置里面讲!
 - 配置conf/extra/vhots.conf:这里只需要在文件的最后添加以下代码:                                                        
<VirtualHost *:80> ServerAdmin 1665656796@qq.com ServerName localhost ServerAlias localhost ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On ProxyPassReverse / balancer://cluster/ </VirtualHost>这里面有一些参数 serveradmin 可以随意 ,serverName,与serverAlias 测试部署阶段可以直接设置为localhost .proxypass与proxypassreverse 可以不做修改,后期明白它的含义了可以根据自己喜好修改!
 找到httpd.conf文件在 DirectoryIndex 配置后面添加index.jsp 如下:
<IfModule dir_module>
DirectoryIndex index.html index.jsp
</IfModule>到这里 apache 配置完毕!
四、tomcat配置由于比较简单,这里简略说明,如果是在一台机器上布置两个tomcat,需要修改四个端口、目的是为了避免端口冲突!tomcat启动报错.
- server.port 端口自己定义吧 只要不冲突就可以!
 - connector.port connector.redirectport 注:connector有两个,一个使用http协议,一个使用ajp协议,这里我们使用的是ajp协议 所以 把ajp协议的更改、当然我们也可以使用http协议做apache与tomcat连接、方法一样!
 - 配置engine 这里主要是给tomcat一个标识,用来让apache区分!和前面apache httpd.conf中的blacermember 配置对应!如下:                                             
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
 - 配置cluster 启动tomcat  进入小猫页面、找到tomcat doc文档.里面有cluster的配置,说明及示例!如下                                                                               
                                                           复制一份代码如下:                                                                                                                                                                                            
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8"> <Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/> <Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4000"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/> <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/> <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>注:vlaue 标签 classname为jvmroutebindervalve 与 clusterlistener classname 为jvmroutesessionidbinderlistener 是为粘性session准备的处理方式、因为我们并没有使用到,所以需要注释掉! 这里还要修改一下revicve.port 也是为了避免冲突!
 
五、apache 与tomcat都布置完毕、可以自己写个小测试,测一下session是否达到要求!篇章短小,测试项目代码就不发布了,网上也有很多!
apache tomcat 集群!的更多相关文章
- Apache + Tomcat集群配置详解 (1)
		
一.软件准备 Apache 2.2 : http://httpd.apache.org/download.cgi,下载msi安装程序,选择no ssl版本 Tomcat 6.0 : http://to ...
 - (转)Apache+Tomcat集群配置
		
本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置. 准备环境 Apache Apache是ht ...
 - 实战Apache+Tomcat集群和负载均衡
		
实战Apache+Tomcat集群和负载均衡 目录 1. 什么是J2EE集群... 3 1.1. 序言... 3 1.2. 基本术语... 3 伸缩性(Scalability): ...
 - Apache+tomcat集群配置
		
一.软件准备 Apache 2.2 : http://httpd.apache.org/download.cgi,下载msi安装程序,选择no ssl版本 Tomcat 6.0 : http://to ...
 - apache + tomcat 集群
		
apache2.2与tomcat集成(可以多个tomcat) 需求概况: 有3个服务: localhost:9091, localhost:9190. localhost:9191分别对应3个tomc ...
 - Linux+Apache+Tomcat集群配置
		
参考: http://blog.csdn.net/bluishglc/article/details/6867358# http://andashu.blog.51cto.com/8673810/13 ...
 - ngnix apache tomcat集群负载均衡配置
		
http://w.gdu.me/wiki/Java/tomcat_cluster.html 参考: Tomcat与Apache或Nginx的集群负载均衡设置: http://huangrs.blog. ...
 - apache tomcat 集群! (转)
		
公司需要一个内部测试局域网, 要求可以支持3000并发访问!以前也没做过服务器这方面.临时抱佛脚,查看了N多文档,他人经验,布置好之后,又遇到了N多问题,功夫不负有心人.终于还是完成了要求!观他人的布 ...
 - apache tomcat集群
		
今天花了大概两个小时完成了tomcat与apache的集群.现记录一下,也希望能帮助后来者. 建议看这篇博客前,先阅读一下鄙人拙作 tomcat整合apache 看完那个后,再进行集群,就很快了. 和 ...
 
随机推荐
- Linux shell 自启动脚本写法
			
直接上脚本内容 #!/bin/bash #chkconfig: 2345 80 90 #description:sniffer #第一行,告诉系统使用的shell,所以的shell脚本都是这样. #第 ...
 - 编译安装php-7.1.17及部分扩展
			
./configure --prefix=/usr/local/php-7.1.17 --disable-debug --enable-shmop --with-gd --with-jpeg-dir= ...
 - MapReduce与关系型数据库的不同之处。
			
MapReduce能够被视为RDBMS(关系型数据库)的补充. 1.MapReduce适合处理那些需要分析整个数据集的问题(日志分析等),以批处理的方式.RDBMS适合做点查询和更新. 2.MapRe ...
 - 原生js的ajax请求
			
传统方法的缺点: 传统的web交互是用户触发一个http请求服务器,然后服务器收到之后,在做出响应到用户,并且返回一个新的页面,,每当服务器处理客户端提交的请求时,客户都只能空闲等待,并且哪怕只是一次 ...
 - Quartz.net创建windows服务
			
序言 安装服务 sc create XXService binpath= "XXService.exe" start= auto sc description XXService ...
 - sql 中多表查询-leetcode : Combine Two Tables
			
因为对数据库的内容早都忘得差不多了,所以我的第一感觉是: select Person.FirstName, Person.LastName, Address.City from Person, Add ...
 - C# 部分类使用partial修饰
			
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace pati ...
 - JavaScript之JS单线程|事件循环|事件队列|执行栈
			
本博文基于知乎"JavaScript作用域问题?"一问,而引起了对JavaScript事件循环和单线程等概念与实践上的研究.深入理解. 一.概念 0.关键词:JavaScript单 ...
 - 第16月第5天 performSelector afterDelay cancel dispatch_semaphore_wait
			
1. //不延时,可能会导致界面黑屏并卡住一会 [self performSelector:@selector(startScan) withObject:nil afterDelay:0.3]; - ...
 - Linux下搭建gtk+2.0开发环境
			
安装gtk2.0 sudo apt-get install libgtk2.0-dev 查看 2.x 版本 pkg-config --modversion gtk+-2.0 #有可能需要sudo ap ...