1.软件安装

1.1下载和安装apache

Apache 2.2 :http://httpd.apache.org/download.cgi,下载msi安装程序,选择no ssl版本

1.2下载和安装tomcat7.0.37(略)

2.Apache配置

2.1启动自动加载代理模块

打开conf/httpd.conf去掉以下文本前的注释符(#)以便让Apache在启动时自动加载代理(proxy)模块。

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
2.2增加index.jsp(可选)

在下列节点中增加index.jsp,目的是能看到首页(conf/httpd.conf文件)

<IfModule dir_module>

DirectoryIndex index.html index.jsp

</IfModule>
2.3开启虚拟站点配置

去掉Includeconf/extra/httpd-vhosts.conf前面的注释(conf/httpd.conf文件)

2.4配置虚拟站点

在conf/extra/httpd-vhosts.conf,配置虚拟站点,在最下面加上

<VirtualHost *:80>

ServerAdmin xxx@126.com

ServerName localhost

ServerAlias localhost

ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On

ProxyPassReverse / balancer://cluster/

ErrorLog "logs/thc-error.log"

CustomLog "logs/thc-access.log" common

</VirtualHost>

说明:这里balancer://是告诉Apache需要进行负载均衡的代理,后面的cluster是集群名(可以随意取),两个日志引擎ErrorLog负责记录错误,CustomLog负责记录所有的http访问以及返回状态,日志名可以自己取。

2.5配置代理

回到httpd.conf,在文档最下面加上:

ProxyRequests Off

<proxy balancer://cluster>

BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1

# 如果第二个Tomcat放在另一台电脑上那么就输入那台电脑的ip

BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm2

</proxy>

说明:ProxyRequestsOff 是告诉Apache需要使用反向代理,<proxy balancer://cluster> 用于配置工作在tomcat集群中的所有节点,这里的"cluster"必须与上面的集群名保持一致。Apache通过ajp协议与tomcat进行通信,ip地址和端口唯一确定了tomcat节点和配置的ajp接受端口。loadfactor是负载因子,Apache会按负载因子的比例向后端tomcat节点转发请求,负载因子越大,对应的tomcat服务器就会处理越多的请求,如两个tomcat都是1,Apache就按1:1的比例转发,如果是2和1就按2:1的比例转发。route参数对应后续tomcat配置中的引擎路径(jvmRoute)

重启Apache服务,如果此时访问http://localhost/将会返回503错误,打开刚才配置的错误日志logs/thc-error.log,可以看到错误原因是因为后台服务器没有响应,因为此时tomcat尚未配置和启动。

3.Tomcat配置

解压出两个Tomcat,名字分别为:tomcat7_1,tomcat7_2。如果tomcat7_1和tomcat7_2不在同一台服务器上运行,对于端口就不需做改动。打开两个Tomcat中的server.xml文件

3.1修改http端口

找到

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443"/>

在tomcat7_1中把8080改为7080,在tomcat7_2中把8080改为9080

3.2修改AJP端口

找到<Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />

这是tomcat接收从Apache过来的ajp连接请求时使用的端口,tomcat7_1保持不变,把tomcat7_2端口改为9009。注意,这里的端口对应Apache httpd.conf中BalancerMember中配置的ajp连接端口。

3.3修改shutdown端口,将8005改成9005
<Serverport="9005" shutdown="SHUTDOWN">
3.4修改jvmRoute

找到<Enginename="Catalina" defaultHost="localhost">

Tomcat7_1修改为: <Engine name="Catalina" defaultHost="localhost"jvmRoute="jvm1">

Tomcat7_2修改为: <Engine name="Catalina"defaultHost="localhost" jvmRoute="jvm2">

这里的jvmRoute对应步骤3.5Apache httpd.conf中BalancerMember中配置的route参数。

3.5共享Session

找到<ClusterclassName="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>,打开注释。

这里的配置是为了可以在集群中的所有tomcat节点间共享会话(Session)。如果仅仅为了获得一个可用的tomcat集群,Cluster只需要这么配置就可以了

3.6web.xml配置

在每个需要session共享的web项目中,需要在web.xml中增加

<distributable/>

4.启动

先启动apache服务

再启动tomcat服务

注意apache的网络监听端口和tomcat的不要相同

Apache2.2 + tomcat7 服务器集群配置的更多相关文章

  1. Mongo服务器集群配置【转】

    http://www.cnblogs.com/wly923/tag/MongoDB/ 当前标签: MongoDB   Mongo服务器集群配置学习三——分片 风行影者 2013-04-14 22:35 ...

  2. Apache+Tomcat服务器集群配置

    在实际应用中,如果网站的访问量很大,为了提高访问速度,可以与多个Tomcat服务器与Apache服务器集成,让他们共同运行servlet/jsp 组件的任务,多个Tomcat服务器构成了一个集群(Cl ...

  3. Redis 之服务器集群配置

    常见的集群架构如图: redis操作过程中数据同步的函数调用关系: 集群搭建: 1.修改3个redis.config 文件的: 2.启动2个redis服务器 当杀掉redis主进程Master时,由于 ...

  4. Nginx详解-服务器集群

    Nginx是什么 代理服务器:一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端.应用比如:GoAgent,FQ神器.  一个完整的代理请求过程为:客户端首先 ...

  5. Hbase集群类型|集群配置|服务器选型|磁盘容量规划

    HBase和Hadoop的集群类型 1.单机模式 主要用于开发工作,一台机器上运行所有的守护进程,或者一台机器运行多个虚拟机.一般用于评估和测试. 2.小型集群 20台机器以内的集群,不同的机器运行不 ...

  6. (转)Apache+Tomcat集群配置

    本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置. 准备环境 Apache Apache是ht ...

  7. 1.Apache+Tomcat负载均衡+集群配置

    1.本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置. 准备环境 Apache Apache是 ...

  8. FineReport如何部署Tomcat服务器集群

    环境准备 Tomcat服务器集群中需要进行环境准备: Apache:Apache是http服务器,利用其对Tomcat进行负载均衡,这里使用的版本是Apache HTTP Server2.0.64: ...

  9. Tomcat集群配置学习篇-----分布式应用

    Tomcat集群配置学习篇-----分布式应用 现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量:大家知道如果服务器访问 ...

随机推荐

  1. Python调用nmap扫描网段主机信息生成xml

    #!/usr/bin/env python # -*- coding: utf_8 -*- # Date: 2015年10月23日 # Author:蔚蓝行 # 博客 http://www.cnblo ...

  2. [转]How to nest transactions nicely - "begin transaction" vs "save transaction" and SQL Server

    本文转自:http://geekswithblogs.net/bbiales/archive/2012/03/15/how-to-nest-transactions-nicely---quotbegi ...

  3. python学习之类和实例的属性;装饰器@property

    无论是类还是实例,一切皆是对象. Python是强动态语言,和java在这点上有所不同. class Ab(): a = 666 # 定义类对象Ab,自带属性a,值为666 # 使用Ab.__dict ...

  4. Dev中自带添加、编辑、删除等按钮的文字颜色等修改

    下面是ASPxGridView的自带按钮的文字等修改 <SettingsCommandButton> <NewButton Text=" " Image-Tool ...

  5. js,需要更多源字符

      里面有的括号没写完 没有关闭 使整个js都不能用 vs2010安装个下面JS插件,更好的分层, https://marketplace.visualstudio.com/items?itemNam ...

  6. Walkway.js – 创建简约的 SVG 线条动画

    Walkway.js 是一个使用线条和路径元素组成 SVG 动画图像的简单方法.只需根据提供的配置对象创建一个新的 Walkway 实例就可以了.这种效果特别适合那些崇尚简约设计风格的网页.目前, W ...

  7. Java注解(三)

    上一篇了解了自定义注解的使用,不过里面的例子没有多大使用价值,这一回来个有用点的Demo. 目标:将实体bean保存到数据库 先来定义一个实体注解 import java.lang.annotatio ...

  8. Spring boot 入门三:SpringBoot用JdbcTemplates访问Mysql 实现增删改查

    建表脚本 -- create table `account`DROP TABLE `account` IF EXISTSCREATE TABLE `account` ( `id` int(11) NO ...

  9. React-Native开发之BUG 总结

    本博客将详细记录在React-Native开发中所遇到的各种问题以及其解决方法. 个人感觉,React-Native开发初期真的是一脚一个大坑,分分钟被虐趴下. 不说了,直接上Bug 1.在Windo ...

  10. Scala + Thrift+ Zookeeper+Flume+Kafka配置笔记

    1. 开发环境 1.1. 软件包下载 1.1.1. JDK下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downl ...