文档章节

windows apache 负载均衡配置 Tomcat集群配置

刘引惟
 刘引惟
发布于 2017/05/15 22:39
字数 1340
阅读 18
收藏 0

1.安装

exe可执行文件的安装方式:http://jingyan.baidu.com/article/ed15cb1b73b3071be269816d.html

解压缩包的安装方式: win+r --> cmd --> 打开dos界面,进入到Apache\bin目录下执行 httpd.exe -k install -n "apache2.2" 。 执行完成 Apache服务安装完毕。apache2.2 为服务的名称

1.1 查看服务:win+r -->services.msc

 

1.2 dos中开启和关闭服务

启动服务遇到问题:右击我的电脑-->管理-->事件查看器-->找到Apache Service-->右键-->查看事件的所有实例

由于Apache的docs  log  等路径都的 /Apache/*** ,但是我的服务是放在了自己建立的文件夹下,所以服务启动的时候找不到这些文件。大部分问题是这些。

1.3 服务安装成功,浏览器访问 http://localhost/

显示如上界面,Apache安装成功。

1.负载均衡配置

配置httpd.conf 文件

1.1  去掉注释块

#提供HTTP/1.1的代理/网关功能支持
LoadModule proxy_module modules/mod_proxy.so

#mod_proxy的扩展,提供Apache JServ Protocol支持
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so  

#mod_proxy的扩展,提供负载均衡支持
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 

#mod_proxy的扩展,提供对处理HTTP CONNECT方法的支持
LoadModule proxy_connect_module modules/mod_proxy_connect.so  

#mod_proxy的FTP支持模块
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

# mod_proxy的HTTP支持模块
LoadModule proxy_http_module modules/mod_proxy_http.so  

1.2 将虚拟主机的注释去掉,将httpd-vhosts.conf 引入。

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

httpd-vhosts.conf文件添加:

<VirtualHost *:80>
    ServerAdmin abc@163.com
    proxyRequests off
    ServerName abc.com
    ServerAlias www.abc.com
    ProxyPass /resource!
    ProxyPass /req balancer://cluster/ stickysession=JSESSIONID|jsessionid nofailover=On
    ProxyPassReverse /req balancer://cluster/
    ProxySet lbmethod=bytraffic 
</VirtualHost>
<proxy balancer://cluster>
    BalancerMember ajp://12.34.56.78:8011 loadfactor=1 route=tomcat1
    BalancerMember ajp://12.34.56.78:8012 loadfactor=1 route=tomcat2
    BalancerMember ajp://12.34.56.78:8013 loadfactor=1 route=tomcat3
    BalancerMember ajp://12.34.56.78:8014 loadfactor=1 route=tomcat4 status=+H
</proxy>

解释:其中ProxyPass /resource! 表示/resource 开头的请求不会转发给Tomcat,而是作为静态资源在Apache的resource目录下寻找资源文件。而反向代理将所有的/req 请求都转发给名叫cluster的balancer。 而这个balancer有四个Tomcat成员 status=+H 表示热部署。

ProxySet lbmethod=bytraffic 设置负载均衡的策略

lbmethod可能的取值有:  
lbmethod=byrequests 按照请求次数均衡(默认) 
lbmethod=bytraffic 按照流量均衡 
lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器) 

stickySession=JSESSIONID表示开启粘性Session。意思是如果第一次请求分到了tomcat1,那么这个用户的后续请求,都会分配给tomcat1这个服务。

然后在Apache配置故障转移(nofailover=On)

如果tomcat1服务宕机,那么Apache会将请求提交当其它服务器,由于后台Tomcat服务器做了Session共享(也就是服务器Session复制),所以用户的Session并没有丢失。

2.Tomcat服务集群配置

Apache配置了四台服务的负载均衡,对应的Tomcat服务器也需要四台。以Tomcat6.x为例

2.1 配置Server port 在tomcat-6.x\conf\server.xml文件中找到

<Server port="8005" shutdown="SHUTDOWN">
<!--修改成: -->
<Server port="8006" shutdown="SHUTDOWN">

并将其余3个Tomcat的Server port分别修改成8007,8008,8009。

2.2 配置Connector port 在tomcat-6.x\conf\server.xml文件中找到

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<!--修改成:-->
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<!--并将其余3个Tomcat的port分别修改成8082,8083,8084-->

 

2.3 配置Apache和Tomcat通讯端口,在tomcat-6.x\conf\server.xml文件中找到

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<!--修改成:-->
<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />
<!--并将其余3个Tomcat的port分别修改成8012,8013,8014 -->

 

2.3 是apache和tomcat链接的关键,前台apache就是通过AJP协议与tomcat进行通信的,以完成负载均衡,上面的 port="8011" 就是Apache连接Tomcat的端口。

回顾一下httpd.conf配置中的

<proxy balancer://cluster>
    BalancerMember ajp://12.34.56.78:8011 loadfactor=1 route=tomcat1
    BalancerMember ajp://12.34.56.78:8012 loadfactor=1 route=tomcat2
    BalancerMember ajp://12.34.56.78:8013 loadfactor=1 route=tomcat3
    BalancerMember ajp://12.34.56.78:8014 loadfactor=1 route=tomcat4
</proxy>

Tomcat中的端口要和“ajp://12.34.56.78:XXXX”后面端口一致。

2.4 配置Engine ,在tomcat-6.x\conf\server.xml文件中找到

<Engine name="Catalina" defaultHost="localhost">,
<!--修改成:-->
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1">
<!--并将其余3个Tomcat的jvmRoute分别修改成:-->
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat2">
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat3">
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat4">

回顾一下httpd.conf配置中的

<proxy balancer://cluster>
    BalancerMember ajp://12.34.56.78:8011 loadfactor=1 route=tomcat1
    BalancerMember ajp://12.34.56.78:8012 loadfactor=1 route=tomcat2
    BalancerMember ajp://12.34.56.78:8013 loadfactor=1 route=tomcat3
    BalancerMember ajp://12.34.56.78:8014 loadfactor=1 route=tomcat4
</proxy>

Tomcat中的jvmRoute="tomcatx"要和“route=tomcatx”中的命名一致。

2.5 配置Cluster ,在tomcat-6.x\conf\server.xml文件中找到

<!--在注释行的下面添加:-->
<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;"/>
    <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>

其余3个Tomcat都要做相同的配置,注意每个Tomcat之间的差别是<Receiver>标签下面的port值不一样,这里是5001,其余3个Tomcat中分别是5002,5003,5004

 

3. Tomcat集群要解决的问题

3.1 Session共享

1. 所有session中的对象可以序列化,实现 java.io.Serializable接口。

2. 确保你部署文件中的web.xml有<distributable/>元素(其父元素为</web-app>),或者设置你的<Context distributable="true" />。

3. 当使用多台机器时,要保证不同机器时间的同步。

4. 确保你的loadbalancer是sticky session 模式。

 

© 著作权归作者所有

刘引惟
粉丝 7
博文 85
码字总数 18139
作品 0
浦东
私信 提问
windows环境 apache2.2.21+tomcat6集群和负载均衡配置(深圳网新新思)

一、集群和负载均衡的概念 (一)集群的概念   集群(Cluster)是由两台或多台节点机(服务器)构成的一种松散耦合的计算节点集合,为用户提供网络服务或应用程序(包括数据库、Web服务和文...

空谷幽兰
2012/04/30
2.4K
3
《Tomcat Apache集群安装指南》PDF下载

:本文为您讲述了如何在Windows或Linux下进行Tomcat集群的安装配置。 Windows下Tomcat集群的安装配置与Linux下稍有区别,道长为了在一篇教程中讲解两种操作系统的配置,因此使用两台机器进行...

李永波
2011/05/20
969
8
Nginx在Windows平台的配置

1.1.1 课程目标: 课程目标: 能够使用Nginx搭建Tomcat集群,并完成负载均衡. 1.1.2 Nginx的概述: 什么是Nginx: 为什么使用Nginx: 度娘的解释: 背景: 互联网飞速发展的今天,大用户量高并发已经...

pxk
2017/10/29
0
1
Nginx + Tomcat Windows下的负载均衡配置

一、为什么需要对Tomcat服务器做负载均衡? Tomcat服务器作为一个Web服务器,其并发数在300-500之间,如果超过500的并发数会出现Tomcat不能响应新的请求的情况,严重影响网站的运行。同时如果...

会爬树的蜗牛
2013/01/13
0
4
linux下配置tomcat集群的负载均衡

linux下配置tomcat集群的负载均衡 一、首先了解下与集群相关的几个概念 集群: 集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群...

吴胜健
2014/10/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

0.01-Win10安装linux子系统

一、安装Debian子系统 -1、控制面板设置: -1.1、打开“控制面板” —— “程序” —— “启用或关闭Windows功能” —— 勾选 “适用于Linux的Windows子系统” -2、设置: -2.1、打开“设置”...

静以修身2025
昨天
2
0
init 0-6 (启动级别:init 0,1,2,3,4,5,6)

启动级别: init 0,1,2,3,4,5,6 这是个很久的知识点了,只是自己一直都迷迷糊糊的,今天在翻出来好好理解下。。 0: 停机 1:单用户形式,只root进行维护 2:多用户,不能使用net file system...

圣洁之子
昨天
2
0
Android Camera HAL浅析

1、Camera成像原理介绍 Camera工作流程图 Camera的成像原理可以简单概括如下: 景物(SCENE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为电信号,经过A/D(模数转...

天王盖地虎626
昨天
2
0
聊聊Elasticsearch的ProcessProbe

序 本文主要研究一下Elasticsearch的ProcessProbe ProcessProbe elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/monitor/process/ProcessProbe.java public class ProcessProb......

go4it
昨天
3
0
mysql PL(procedure language)流程控制语句

在MySQL中,常见的过程式SQL语句可以用在存储体中。其中包括IF语句、CASE语句、LOOP语句、WHILE语句、ITERATE语句和LEAVE语句,它们可以进行流程控制。 IF语句相当于Java中的if()...else if(...

edison_kwok
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部