Apache2.2.4 + Tomcat7集群配置

简介: apache服务器和tomcat的连接方法其实有三种:mod_JK、http_proxy和ajp_proxy。 采用ajp代理模式配置Apache+tomcat实现负载均衡(从2.X以后apache自身已集成了mod_jk.so的功能) 使用这种协议,具有更高的性能,因为它采用的是二进制传输。比HTTP的文本传输要有更高的效率。在Apache中要使用mod_proxy和mod_prox
apache服务器和tomcat的连接方法其实有三种:mod_JK、http_proxy和ajp_proxy。

采用ajp代理模式配置Apache+tomcat实现负载均衡(从2.X以后apache自身已集成了mod_jk.so的功能)

使用这种协议,具有更高的性能,因为它采用的是二进制传输。比HTTP的文本传输要有更高的效率。在Apache中要使用mod_proxy和mod_proxy_ajp,在Tomcat中则要开启ajp服务。

APAHCE 2.2.4下载地址  
http://archive.apache.org/dist/httpd/binaries/win32/apache_2.2.4-win32-x86-no_ssl.msi


安装后配置
1.httpd.conf配置
将下面的内容去掉注释:(其实注释掉前面三行也就行了,因为采用的是ajp代理)
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_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

LoadModule status_module modules/mod_status.so
LoadModule info_module modules/mod_info.so //这两个是集群监控用的


 再找到<IfModule dir_module></IfModule>加上index.jsp修改成
<IfModule dir_module>
DirectoryIndex index.html index.jsp
</IfModule>

找到Include conf/extra/httpd-vhosts.conf,去掉前面的注释符。


apache监控必须在负载均衡之前配置
#过滤server-stauts监控页面
ProxyPass /server-status !
#过滤balancer-manager监控页面
ProxyPass /balancer-manager  !

<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Location>

<Location /balancer-manager >
    SetHandler balancer-manager
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>




负载均衡实现:

在httpd.conf 最下面加入,ProxyRequests Off 是告诉Apache需要使用反向代理
ProxyRequests Off
<proxy balancer://cluster>
BalancerMember ajp://127.0.0.1:8109 loadfactor=1 route=jvm1
BalancerMember ajp://127.0.0.1:8209 loadfactor=1 route=jvm2
</proxy>





配置虚拟主机
修改conf/extra/httpd-vhosts.conf文件



在文件最下面加入  删除其他无用的<VirtualHost>
<VirtualHost *:80>
         ServerAdmin 934033381@qq.com
         ServerName localhost
         ServerAlias localhost
         ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On    #重定向
         ProxyPassReverse / balancer://cluster/                                   #反向代理
</VirtualHost>

注:
session replication  会话复制

session共享,多个服务器session拷贝保存,一台宕机不会影响用户的登录状态;

session sticky  会话不复制  

即当前用户的请求都集中定位到一台服务器中,这样单台服务器保存了用户的session登录信息,如果宕机,则等同于单点部署,会丢失;


nofailover (无故障切换) 默认值off
如果设为‘On’,当工作单元被禁用或者出错时,会话则立即中断。可以将该值设为On,如果后端服务器不支持会话复制(Session replication)。



配置tomcat
我们需要在一台机器上跑2个不同的tomcat ,需要修改不同的tomcat的关闭口,避免出现端口被占用的情况
分别为
1.配置关闭端口
<Server port="8105" shutdown="SHUTDOWN">
<Server port="8205" shutdown="SHUTDOWN">

2.配置 Engine
把原来的配置注释掉
<!--   <Engine name="Catalina" defaultHost="localhost"> -->

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


3.配置Connector的端口
  <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443"   URIEncoding="UTF-8"/>
  <Connector port="9080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443"   URIEncoding="UTF-8"/>

4.配置 AJP 1.3 Connector
<Connector port="8109" protocol="AJP/1.3" redirectPort="443" />

<Connector port="8209" protocol="AJP/1.3" redirectPort="443" />


5.配置Cluster(每个tomcat中都要修改,这里的配置是为了可以在集群中的所有tomcat节点间共享会话(Session))

  <!--
      <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>


项目的web.xml文件中<web-app>节点下添加 <distributable/>
主要是添加<distributable/>,distributable元素用来告诉servlet容器,程序将部署在分布式Web容器中

最后启动apache ,tomcat1 ,tomcat2
删除环境变量中的CATALINA_HOME=D:\Program Files\apache-tomcat-7.0.62,
不然多个tomcat在同一台机器上使用的是同一个配置文件,端口冲突无法启动

目录
相关文章
|
1月前
|
Java 应用服务中间件 Apache
从零手写实现 apache Tomcat-01-入门介绍
创建简易Tomcat涉及理解其作为Java服务器的角色,建立HTTP服务器,实现Servlet接口处理动态和静态内容,以及启动和关闭服务器。项目mini-cat是一个简化版Tomcat实现,支持Servlet、静态网页和基础功能。可通过maven添加依赖并运行测试类快速体验。开源项目位于[GitHub](https://github.com/houbb/minicat)。
|
1月前
|
Java Maven
Maven配置以及IDEA设置(Cannot resolve plugin org.apache.maven.plugins:报错)
Maven配置以及IDEA设置(Cannot resolve plugin org.apache.maven.plugins:报错)
95 1
|
22天前
|
安全 网络协议 应用服务中间件
tomcat 状态页 及常见配置
tomcat 状态页 及常见配置
|
2天前
|
Java 应用服务中间件 Apache
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
17 7
|
15天前
|
Java 应用服务中间件 Apache
Apache HTTP配置反向代理入门
Apache HTTP配置反向代理入门
18 0
Apache HTTP配置反向代理入门
|
4天前
|
Java 应用服务中间件 Linux
Tomcat的安装和配置详细教程
Tomcat的安装和配置详细教程
|
1月前
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
|
1月前
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400(2)
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400(2)
|
1月前
|
IDE Java 应用服务中间件
JDK1.6.0+Tomcat6.0的安装配置(配置JAVA环境)
JDK1.6.0+Tomcat6.0的安装配置(配置JAVA环境)
34 1
|
1月前
|
XML 安全 Java
从零手写实现 apache Tomcat-02-web.xml 入门详细介绍
`web.xml`是Java Web应用的核心配置文件,描述应用工作方式。它包含Servlet、Filter和Listener的定义。例如,示例展示了如何配置名为`my`的Servlet处理`/my`请求,`LoggingFilter`拦截所有请求,以及`MyServletContextAttrListener`监听应用事件。`web.xml`是服务器理解应用结构与行为的指南。迷你版Tomcat实现——mini-cat(开源:https://github.com/houbb/minicat)。

推荐镜像

更多