win 下 apache2.4 +tomcat7 集群

为什么80%的码农都做不了架构师?>>>   hot3.png

反正每次来做一个不熟悉的东西,就是各种的search ,前一次去做过一个apache的东西,各种蛋疼,各种不能用。好多的东西也是比较旧了的咯。

这次结合前辈的各种东借西拿,总算是成功了。

如果有些不明白,建议先看下一篇,,因为你的打开方式有些不对。

环境: win7 sp1. 

            jdk1.7 

            httpd2.4x64 

            tomcat7.59

我们这里是使用AJP模式来进行集群

sp 0: 首先是安装apache

修改httpd.conf中的一些路径,设置各种路径为当前你放置apache-httpd的路径

ServerRoot "D:\apache24-tct7\Apache24"
//.....省略n多路径配置

sp 1. 配置一下模块打开

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.soLoadModule speling_module modules/mod_speling.soLoadModule ssl_module modules/mod_ssl.so
#可能还需要这个
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule proxy_html_module modules/mod_proxy_html.so


1.1 配置反向代理

ProxyRequests Off
<proxy balancer://cluster>BalancerMember ajp://127.0.0.1:9001 loadfactor=1 route=jvm1BalancerMember ajp://127.0.0.1:9002 loadfactor=1 route=jvm2BalancerMember ajp://127.0.0.1:9003 loadfactor=1 route=jvm3
</proxy>

sp 2. 配置tomcat

2.1改 SHUTDOWN 端口

    #同一服务器中必须不一样,因为可能冲突

<Server port="9006" shutdown="SHUTDOWN">

2.2改http port redirectPort 

    #同一服务器中必须不一样,因为可能冲突

<Connector port="8081" protocol="HTTP/1.1" executor="tomcatThreadPool"connectionTimeout="20000"redirectPort="9441" />

2.3 改ajp port redirectPort

    #同一服务器中必须不一样,因为可能冲突

<Connector port="9001" protocol="AJP/1.3" redirectPort="8441" />

2.4 改 Engine 加上 jvmRoute 需要跟httpd.conf中保持一致

<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">

2.5 加上Cluster  具体如下

    #其中,Receiver  port="5001"   同一服务器下,不能一样

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6"><Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true" mapSendOptions="6" /><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="5001" selectorTimeout="100" 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" /><Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor" /></Channel><Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;" /><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.ClusterSessionListener" /></Cluster>

sp 3. 改项目web.xml

在其中添加:

<distributable />

节点

放一个完整一点的tomcat的server.xml

<?xml version='1.0' encoding='utf-8'?>
<!--Licensed to the Apache Software Foundation (ASF) under one or morecontributor license agreements.  See the NOTICE file distributed withthis work for additional information regarding copyright ownership.The ASF licenses this file to You under the Apache License, Version 2.0(the "License"); you may not use this file except in compliance withthe License.  You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.
-->
<!-- Note:  A "Server" is not itself a "Container", so you may notdefine subcomponents such as "Valves" at this level.Documentation at /docs/config/server.html-->
<Server port="9006" shutdown="SHUTDOWN"><Listener className="org.apache.catalina.startup.VersionLoggerListener" /><!-- Security listener. Documentation at /docs/config/listeners.html<Listener className="org.apache.catalina.security.SecurityListener" />--><!--APR library loader. Documentation at /docs/apr.html --><Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /><!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html --><Listener className="org.apache.catalina.core.JasperListener" /><!-- Prevent memory leaks due to use of particular java/javax APIs--><Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /><Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /><Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /><!-- Global JNDI resourcesDocumentation at /docs/jndi-resources-howto.html--><GlobalNamingResources><!-- Editable user database that can also be used byUserDatabaseRealm to authenticate users--><Resource name="UserDatabase" auth="Container"type="org.apache.catalina.UserDatabase"description="User database that can be updated and saved"factory="org.apache.catalina.users.MemoryUserDatabaseFactory"pathname="conf/tomcat-users.xml" /></GlobalNamingResources><!-- A "Service" is a collection of one or more "Connectors" that sharea single "Container" Note:  A "Service" is not itself a "Container",so you may not define subcomponents such as "Valves" at this level.Documentation at /docs/config/service.html--><Service name="Catalina"><!--The connectors can use a shared executor, you can define one or more named thread pools--><!--<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"maxThreads="150" minSpareThreads="4"/>--><!-- A "Connector" represents an endpoint by which requests are receivedand responses are returned. Documentation at :Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)Java AJP  Connector: /docs/config/ajp.htmlAPR (HTTP/AJP) Connector: /docs/apr.htmlDefine a non-SSL HTTP/1.1 Connector on port 8080--><Connector port="8081" protocol="HTTP/1.1" executor="tomcatThreadPool"connectionTimeout="20000"redirectPort="9441" /><!-- A "Connector" using the shared thread pool--><!--<Connector executor="tomcatThreadPool"port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />--><!-- Define a SSL HTTP/1.1 Connector on port 8443This connector uses the BIO implementation that requires the JSSEstyle configuration. When using the APR/native implementation, theOpenSSL style configuration is required as described in the APR/nativedocumentation --><!--<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"maxThreads="150" SSLEnabled="true" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS" />--><!-- Define an AJP 1.3 Connector on port 8009 --><Connector port="9001" protocol="AJP/1.3" redirectPort="8441" /><!-- An Engine represents the entry point (within Catalina) that processesevery request.  The Engine implementation for Tomcat stand aloneanalyzes the HTTP headers included with the request, and passes themon to the appropriate Host (virtual host).Documentation at /docs/config/engine.html --><!-- You should set jvmRoute to support load-balancing via AJP ie :<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"><Engine name="Catalina" defaultHost="localhost">--><Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"><!--For clustering, please take a look at documentation at:/docs/cluster-howto.html  (simple how to)/docs/config/cluster.html (reference documentation) --><!--<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>--><Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6"><Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true" mapSendOptions="6" /><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="5001" selectorTimeout="100" 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" /><Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor" /></Channel><Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;" /><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.ClusterSessionListener" /></Cluster><!-- Use the LockOutRealm to prevent attempts to guess user passwordsvia a brute-force attack --><Realm className="org.apache.catalina.realm.LockOutRealm"><!-- This Realm uses the UserDatabase configured in the global JNDIresources under the key "UserDatabase".  Any editsthat are performed against this UserDatabase are immediatelyavailable for use by the Realm.  --><Realm className="org.apache.catalina.realm.UserDatabaseRealm"resourceName="UserDatabase"/></Realm><Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true"><!-- SingleSignOn valve, share authentication between web applicationsDocumentation at: /docs/config/valve.html --><!--<Valve className="org.apache.catalina.authenticator.SingleSignOn" />--><!-- Access log processes all example.Documentation at: /docs/config/valve.htmlNote: The pattern used is equivalent to using pattern="common" --><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log." suffix=".txt"pattern="%h %l %u %t &quot;%r&quot; %s %b" /></Host></Engine></Service>
</Server>


具体根据需求的做法,请参考tomcat的文档

http://http://tool.oschina.net/apidocs/apidoc?api=tomcat-7.0-doc

apache2.4 x64win 下载地址:

http://www.apachelounge.com/download/

其他的,应该不用说了吧

测试就是写个jsp,打印下各tomcat下的项目中的session信息,以及是哪个tomcat下面的

143530_t4sL_2355835.png

jvm3 ID 3C5555DBBBE06EEC67B6F9508CAB0520.jvm3
Session 列表a = 123


转载于:https://my.oschina.net/rwrwd7/blog/406471

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/400469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Proteus常见电平状态

目录高态其他低态Windows 10 20H2 Proteus 8 Frofessional v8.9 SP2 摘自proteus常见状态 —— 山科董国正 高态 PHI 电源高态&#xff1a;电源高逻辑SHl 强电高态&#xff1a;主动输出高逻辑WHI 弱电高态&#xff1a;被动输出高逻辑 其他 FLT 悬空态&#xff1a;悬空输出…

简单理解正则表达式

我理解的正则表达式&#xff1a; 正则表达式就是用于字符&#xff08;串&#xff09;匹配时的一种描述字符串的表达式。 关于正则表达式&#xff1a; 预定义的字符类 用\d可以匹配一个数字&#xff1b;用\D表示非数字字符[^\d]用\w可以匹配一个字母或数字&#xff1b;用\W表示非…

最后一行数据

最后一行数据 设计要点&#xff1a;导入外部数据、SQL、数据源、汇总行 秀秀&#xff1a;既然你说第一行的数据那么重要&#xff0c;那俺觉得最后一行数据也很重要。 阿金&#xff1a;为什么&#xff1f; 秀秀&#xff1a;因为最后一行数据往往是汇总行&#xff0c;一般引用数据…

Proteus仿真单片机:PIC18单片机的仿真

目录新建工程ProteusMPLAB X IDE调试Windows 10 20H2 Proteus 8 Frofessional v8.9 SP2 MPLAB X IDE v5.45 新建工程 Proteus 下一步 下一步 选择芯片、编译器 搭建实验电路 MPLAB X IDE MPLAB X IDE 新建工程 选择独有项目 选择芯片 选择编译器 配置工程名称、路…

Realm学习总结

参考博客: http://www.jianshu.com/p/096bec929f2a http://www.cnblogs.com/ilyy/p/5648051.html 参考的博客介绍很详细,我就不写了..写了一个简单的学习的demo. GitHub地址: https://github.com/PengSiSi/RealmDemo 代码如下: // // ViewController.m // RealmDemo // // C…

with(nolock)的用法

with(nolock)的介绍 大家在写查询时,为了性能,往往会在表后面加一个nolock,或者是with(nolock),其目的就是查询是不锁定表,从而达到提高查询速度的目的。 当同一时间有多个用户访问同一资源,并发用户中如果有用户对资源做了修改&#xff0c;此时就会对其它用户产生某些不利的影…

干支表

原文地址&#xff1a;http://114.xixik.com/tiangandizhi/ 天干 12345678910甲乙丙丁戊己庚辛壬癸地支 123456789101112子丑寅卯辰巳午未申酉戌亥六十年甲子&#xff08;干支表&#xff09; 12345678910甲子乙丑丙寅丁卯戊辰己巳庚午辛未壬申癸酉11121314151617181920甲戌乙亥丙…

【PIC18单片机学习笔记】一、程序的烧录

目录编程器烧录软件烧录准备程序main.cpic18.h烧录效果Windows 10 20H2 PICkit 3 v3.10 MPLAB X IDE v5.45 PIC18F46J50 编程器 所用编程器为PICkit 3.5 按图示连接好编程器和开发板 烧录软件 所用烧录软件为PICkit 3 v3.10 初次使用需要给编程器更新固件&#xff0c…

ASIHttpRequest:创建队列、下载请求、断点续传、解压缩

ps&#xff1a;本文转载自网络&#xff1a;http://ryan.easymorse.com/?p12 感谢作者 工程完整代码下载地址&#xff1a;RequestTestDownload1 可完成&#xff1a; 下载指定链接的zip压缩文件存放在Documents目录下支持断点续传显示下载进度解压到指定目录—————————…

UIControl-IOS开发

UIKit提供了一组控件&#xff1a;UISwitch开关、UIButtonbutton、UISegmentedControl分段控件、UISlider滑块、UITextField文本字段控件、 UIPageControl分页控件。 控件是对UIView派生类的有用增强及补充&#xff0c;并能够直接附着于导航栏、表格单元&#xff0c;甚至更大的对…

熊仔科技Steamduino PIC18F46J50主控板 部分原理图

目录连接情况原理图实物图Proteus 8 Frofessional v8.9 SP2 从学长那嫖的&#xff0c;本来貌似是要用来做写字机器人的&#xff0c;后面学长换成Arduino UNO了。 网上找不到资料&#xff0c;用万用表简单测了测没有丝印部分的连接情况 连接情况 RD2/PMD2/RP19 USR_LED…

在linux上实现DllMain + 共享库创建方法

DllMain可以在dll加载到进程、线程时调用&#xff0c;可以做些初始化、清理的工作 但在linux上没有专门的函数&#xff0c;可以使用gcc扩张属性__attribute__((constructor)) and __attribute__((destructor))来实现 类似于全局类变量&#xff0c;其构造函数及析构函数会在加载…

阿里巴巴2014研发project师实习生面试经历

java研发project师的初面是在上周三进行的&#xff0c;终于结果到了晚上才出&#xff0c;而没有通过的则是一结束网上就更新了状态。之后阿里通知这周三&#xff0c;也就是今天进行二面。 凑巧的是今早被舍友吵醒&#xff0c;中午那个困啊&#xff0c;但没时间睡了&#xff0c;…

【数据库】SQL语句

SQL 分为两个部分&#xff1a;数据操作语言&#xff08;DML&#xff09;和 数据定义语言&#xff08;DDL&#xff09;。增删改查&#xff08;CRUD&#xff09;构成了 SQL 的 DML 部分。 SELECT - 从数据库表中获取数据 SELECT 列名 FROM 表名SELECT * FROM 表名 SELECT COUNT(*…

【51单片机快速入门指南】3.3:USART 串口通信

目录快速使用硬知识串行口相关寄存器串行口控制寄存器SCON和PCON串行口数据缓冲寄存器SBUF从机地址控制寄存器SADEN和SADDR与串行口中断相关的寄存器IE和IPH、IP串行口工作模式串行口工作模式0&#xff1a;同步移位寄存器串行口工作模式1&#xff1a;8位UART&#xff0c;波特率…

Spring JTA应用JOTM Atomikos II JOTM

上节建立了一个简单的Java Application以及所需要的数据库和数据表&#xff0c;本节将介绍JOTM在Spring中的配置。 JOTM(Java Open Transaction Manager)是ObjectWeb的一个开源JTA实现&#xff0c;本身也是开源应用程序服务器JOnAS(Java Open Application Server)的一部分&…

从包中构建瓦片服务器

SWITCH2OSM 切换到OPENSTREETMAP 丰富的数据 OpenStreetMap数据丰富而详细&#xff0c;包含与实地人相关的大量数据 - 收集的数据。 功能包括&#xff1a; 道路&#xff0c;铁路&#xff0c;水路等餐厅&#xff0c;商店&#xff0c;车站&#xff0c;自动取款机等。步行和自行车…

树根

树根 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u SubmitStatus Practice HDU 1013Appoint description:System Crawler (2015-04-27)Description The digital root of a positive integer is found by summing the digits of the int…

Scrapy 1.4 文档 01 初窥 Scrapy

初窥 Scrapy Scrapy 是用于抓取网站并提取结构化数据的应用程序框架&#xff0c;其应用非常广泛&#xff0c;如数据挖掘&#xff0c;信息处理或历史存档。 尽管 Scrapy 最初设计用于网络数据采集&#xff08;web scraping&#xff09;&#xff0c;但它也可用于使用 API&#xf…

【51单片机快速入门指南】4: 软件 I2C

目录硬知识I2C 介绍I2C 物理层I2C 协议层数据有效性规定起始和停止信号应答响应总线的寻址方式数据传输示例程序Soft_I2C.cSoft_I2C.h普中51-单核-A2 STC89C52 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识 摘自《普中 51 单片机开发攻略》 I2…