Apache(Web Server)负责处理HTML静态内容;
Tomcat(App Server)负责处理动态内容;
其原理如下:
Apache装有一个模块,这个模块叫mod_jk
Apache通过80端口负责解析任何静态web内容
任何不能解析的内容,用表达式告诉mod_jk,让mod_jk派发给相关的app server去解释。
1、环境
Apache : apache_2.2.17-win32-x86-no_ssl.msi (下载http://httpd.apache.org/download.cgi)
Tomcat : tomcat6.0.20。建议 下载 http://tomcat.apache.org/download-60.cgi
mod_jk: mod_jk-1.2.31-httpd-2.2.3.so 下载 http://tomcat.apache.org/download-connectors.cgi
2.将下载好的mod_jk-1.2.31-httpd-2.2.3.so放入到${APACHE_HOME}/modules 下
3.装完后,在Apache2.2启动的前提下,打开一个ie输入
http://localhost,你将会得到这样的一个页面,就说明你的Apache的安装是成功的。
4.修改${APACHE_HOME}/conf 下的httpd.conf文件
a.修改服务器ip地址 ServerName 10.78.69.87:80
b. 修改apache服务器部署的项目地址 DocumentRoot "F:/apacheserver"
c. 修改访问页面的权限,避免出现403错误
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
allow from all</Directory>
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
JKWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
<VirtualHost *>
ServerAdmin localhost
DocumentRoot F:/apacheserver
ServerName localhost
DirectoryIndex index.html index.jsp index.action
ErrorLog logs/error_log.txt
CustomLog logs/shsc-access_log.txt common
# Set the jk log level [debug/error/info]
JkLogLevel info
# Set the jk log level [debug/error/info]
JkLogLevel info
# JkRequestLogFormat
JkRequestLogFormat "%w %V %T"
JkMount /* tom_control_1
#静态文件都例外,交给apache来处理
JkUnMount /*.gif tom_control_1
JkUnMount /*.jpg tom_control_1
JkUnMount /*.png tom_control_1
JkUnMount /*.css tom_control_1
JkUnMount /*.js tom_control_1
JkUnMount /*.htm tom_control_1
JkUnMount /*.html tom_control_1
JkUnMount /*.xml tom_control_1
JkUnMount /*.db tom_control_1
JkUnMount /*.ico tom_control_1
JkUnMount /*.bmp tom_control_1
JkUnMount /*.swf tom_control_1
JkUnMount /*.doc tom_control_1
JkUnMount /*.ppt tom_control_1
JkUnMount /*.xls tom_control_1
JkUnMount /*.docx tom_control_1
JkUnMount /*.pptx tom_control_1
JkUnMount /*.xlsx tom_control_1
#php不交给tomcat1处理
JkUnMount /*.php tom_control_1
#jsp不交给tomcat1
JkUnMount /*.jsp tom_control_1
#tom_control_2只负责jsp的处理
JkMount /*.jsp tom_control_2
</VirtualHost>
5.在${APACHE_HOME}/conf目录下新建workers.properties属性文件,添加内容如下:
worker.list=tom_control_1, tom_control_2
#tomcat1实例配置,这里要和tomcat配置文件的service.xml的jvmRoute保持一致
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=1
worker.tomcat2.port=8010
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
#========tom_control_1负载均衡控制器========
worker.tom_control_1.type=lb
worker.tom_control_1.balanced_workers=tomcat1
worker.tom_control_1.sticky_session_force=1
#worker.tom_control_1.sticky_session=1
#========tom_control_2负载均衡控制器========
worker.tom_control_2.type=lb
worker.tom_control_2.balanced_workers=tomcat2
worker.tom_control_2.sticky_session_force=1
#worker.tom_control_2.sticky_session=1
6.修改tomcat1中的server.xml文件,将8009注释的去掉,并添加jvmRoute属性
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
同理修改tomcat2
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
7.将发布的web工程拷贝到apache服务器发布的路径,删除WEB-INF文件夹的文件。
8.重启tomact1和tomcat2和apache服务器,通过http://localhost/项目名即可.
如果是在本机需要修改tomcat的端口。
很多人在配置tomcat+apcahe集群时总会需要session不能复制的问题,其解决办法如下:
1.在你的应用程序的WEB-INF\web.xml文件的最后面要加入<distributable/>
加入该属性可以使该工程中的session可以被tomcat的集群节点进行轮循复制。
2.在配置conf\server.xml文件时要加入<Cluster>配置项,
<Cluster>配置项还有一个<Manager>子项
在<Manager>中可以设置一个"notifySessionListenersOnReplication"属性,
这个"notifySessionListenersOnReplication"属性默认是true
不能把它设为false.
eg:
<Manager className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>
3.需要配置Channel,Membership 节点信息
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
bind="127.0.0.1"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4002"
selectorTimeout="100"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender" timeout="60000"/>
</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;"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
注意:此处有一个Receiver port=”xxxx”,两个tomcat中此处的端口号必须唯一,即tomcat中我们使用的是port=4001,那么我们在tomcat2中将使用port=4002。
有关Tomcat集群、Session复制的东西都在
org.apache.catalina.tribes、org.apache.catalina.ha这两个包中.
分享到:
相关推荐
"两台服务器上做Apache2.2+Tomcat6.0+mod_jk的负载均衡"是一个典型的分布式系统架构,旨在通过在多台服务器之间分配工作负载来提高系统的稳定性和性能。下面将详细介绍这个配置涉及的知识点: 1. **Apache ...
通过 mod_jk,可以实现负载均衡、故障转移等功能,提升系统的可用性和可伸缩性。 **整合过程** 1. **安装 Apache 2.4**: 首先,你需要在你的服务器上安装 Apache 2.4,这通常涉及到下载源码包,配置编译选项,然后...
Apache 2.4 和 Tomcat 7 的整合配置主要依赖于 mod_jk 模块,这是一个 Apache HTTP 服务器的模块,用于与 Tomcat...同时,通过 mod_jk,你可以轻松地扩展到多台 Tomcat 实例,实现负载均衡,提高系统可用性和可扩展性。
apache+tomcat+mod_jk整合文档,内有安装包。apache+tomcat+mod_jk整合文档,内有安装包。
本资源包含了文章Apache2.2.x + Tomcat6.x + JK 集群配置,http://blog.csdn.net/qq396229783/article/details/74295797里面所用到的软件配置
### RedHat Linux + Apache + Tomcat + Mod_jk 负载均衡安装步骤详解 #### 系统环境准备与配置 在开始安装之前,我们首先需要确保系统环境满足以下要求: 1. **操作系统:** Red Hat Linux 9.0 2. **软件版本:**...
在这个配置中,Apache作为前端服务器,通过mod_jk模块与后端的Tomcat应用服务器进行通信,实现请求的分发和负载均衡。 Apache HTTP Server是世界上最流行的开源Web服务器软件,它可以处理静态内容并转发动态内容到...
在IT领域,Apache2.0.43、Tomcat4.1.18与mod_jk-2.0.43.dll的整合是一项经典且重要的技术配置,它为Web应用提供了一个高性能、高稳定性的运行环境。下面将详细介绍这一整合方案的关键知识点。 ### 一、环境搭建与...
在这个场景下,Apache作为前端服务器,接收用户的HTTP请求,然后通过mod_JK模块将请求分发到后端的多个Tomcat实例上,从而实现负载均衡。 mod_JK是Apache HTTP服务器的一个模块,它专门用于连接Apache与Tomcat。它...
这样的设计有助于实现负载均衡,并且可以在一定程度上减少单点故障的风险。 #### 二、Apache 2.2 的安装与配置 1. **下载安装Apache**: - 访问官方网站下载Apache 2.2.9的源码包。 - 使用命令行工具解压并编译...
在本文中,我们将深入探讨如何使用Apache Web服务器结合Tomcat应用服务器,以及mod_jk模块来实现负载均衡和集群配置。 首先,我们来安装Apache。可以从官方网站下载Apache HTTP Server的安装包,例如Apache 2.2.x-...
Apache、Tomcat、mod_jk和mod_ssl是构建高效、安全的Java web应用程序服务器环境的关键组件。本配置笔记将深入探讨如何将这些组件整合在一起,实现动态内容的处理和HTTPS安全连接。 首先,Apache HTTP Server作为...
本文介绍的是通过Apache服务器配合mod_jk模块和Tomcat应用服务器实现负载均衡的方式。 #### 三、环境搭建 为了进行负载均衡的配置,首先需要准备以下环境: - Apache HTTP Server 2.2.x - Tomcat 7.x - mod_jk-...
Apache+Tomcat+JK是一个常见的Web服务器和应用服务器集群解决方案,用于实现负载均衡和高可用性。这个配置中,Apache作为前端反向代理服务器,Tomcat作为后端的应用服务器,而JK模块是Apache与Tomcat之间的连接器,...
"Apache+Tomcat7+jk负载均衡"的组合就是一种常见的解决方案,它通过Apache HTTP Server作为前端代理服务器,利用JK模块(mod_jk)将请求分发到多台后端的Tomcat7应用服务器上,实现负载均衡和故障转移。下面我们将...
【标题】"tomcat集群-Apache2.2.4+And+mod_jk.so+tomcat配置文件"涉及的是在分布式环境中通过Apache HTTP Server与Tomcat应用服务器集成,实现负载均衡和高可用性的技术。这里的核心是Apache的mod_jk模块,它是一个...
3. JK模块:Apache的 mod_jk 模块,用于连接Apache和Tomcat,实现负载均衡。 配置步骤如下: 1. **安装Apache和Tomcat**:从官方站点下载Apache和Tomcat的Windows版本,并按照常规步骤进行安装。同时,下载JK模块...
rpm格式的,运行后直接就生效了 比src 格式的方便