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月前
|
消息中间件 存储 监控
构建高可用性Apache Kafka集群:从理论到实践
【10月更文挑战第24天】随着大数据时代的到来,数据传输与处理的需求日益增长。Apache Kafka作为一个高性能的消息队列服务,因其出色的吞吐量、可扩展性和容错能力而受到广泛欢迎。然而,在构建大规模生产环境下的Kafka集群时,保证其高可用性是至关重要的。本文将从个人实践经验出发,详细介绍如何构建一个高可用性的Kafka集群,包括集群规划、节点配置以及故障恢复机制等方面。
83 4
|
2月前
|
Java Shell 应用服务中间件
Mac系统下配置环境变量:Javajdk、maven、tomcat 环境变量配置及对应配置文件
这篇文章介绍了如何在Mac系统下配置Java JDK、Maven和Tomcat的环境变量,包括配置文件的选择、解决环境变量在zsh shell中无效的问题、查看和设置系统环境变量的方法,以及JDK和Maven的下载、配置和测试步骤。
1535 1
Mac系统下配置环境变量:Javajdk、maven、tomcat 环境变量配置及对应配置文件
|
2月前
|
存储 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
44 1
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
|
2月前
|
缓存 前端开发 应用服务中间件
CORS跨域+Nginx配置、Apache配置
CORS跨域+Nginx配置、Apache配置
222 7
|
2月前
|
分布式计算 大数据 分布式数据库
大数据-158 Apache Kylin 安装配置详解 集群模式启动(一)
大数据-158 Apache Kylin 安装配置详解 集群模式启动(一)
47 5
|
2月前
|
资源调度 大数据 分布式数据库
大数据-158 Apache Kylin 安装配置详解 集群模式启动(二)
大数据-158 Apache Kylin 安装配置详解 集群模式启动(二)
46 2
|
2月前
|
消息中间件 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
43 2
|
2月前
|
存储 消息中间件 druid
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
88 1
|
6月前
|
缓存 负载均衡 NoSQL
Redis系列学习文章分享---第十四篇(Redis多级缓存--封装Http请求+向tomcat发送http请求+根据商品id对tomcat集群负载均衡)
Redis系列学习文章分享---第十四篇(Redis多级缓存--封装Http请求+向tomcat发送http请求+根据商品id对tomcat集群负载均衡)
85 1
|
域名解析 运维 负载均衡
【运维知识进阶篇】Tomcat集群实战之部署zrlog博客(Tomcat服务安装+静态资源挂载NFS+Nginx负载均衡+HTTPS证书+Redis会话保持)
【运维知识进阶篇】Tomcat集群实战之部署zrlog博客(Tomcat服务安装+静态资源挂载NFS+Nginx负载均衡+HTTPS证书+Redis会话保持)
404 1

推荐镜像

更多