Apache+Tomcat_搭建均衡负载_Window7
接下来开始搭建配置均衡负载: 1 个apache + 2个tomcat (一台电脑上)
第一步:确定环境和软件版本
我的环境和软件版本如下:
windows7 x64
jdk-7windows-x64.zip
apache_2.2.11-win32-x86-no_ssl.rar
apache-tomcat-7.0.26-windows-x86.zip
系统64位和JDK64位,是可以兼容 32位的 apache、tomcat, 可以去网上搜索你要求的版本下载,也可直接使用和我一样的版本,
Baidu Cloudy Url:http://pan.baidu.com/s/1skmPAwP
这是我本机上的安装目录,如图参照:
第二步:安装配置Java
通常就直接默认安装,并且配置环境变量,验证即可:
JAVA_HOME:G:\Program Files\Java\jdk1.7.0_15;
CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;
Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
确定保存,再打开cmd验证,下面3个命令试着执行下,有结果回显应该就配的很perfect啦!
cmd>java --version
cmd>java
cmd>javac
第三部:安装配置Apache
apache很好安装啦,按照默认的目录或者你喜欢的目录,装完它,最主要的就是配置文件了 ,任何文件配置之前都最好备份一个,
打开conf/httpd.conf ,做一个基本修改,我的监听和访问地址全都改成了本地IP,端口用的是8080,
启动Apache服务,访问地址看是否正常,ok了下一步。
第四部:安装配置Tomcat
大多数 tomcat 是免安装版,解压放到任意目录下即可(我的是放到了和Apache的同级目录)
4.1 配置Tomcat服务
打开文件 tomcat/bin/startup.bat ,脚本开头添加2行如下2行:
SET JAVA_HOME=G:\Program Files\Java\jdk1.7.0_15 (目的是告诉脚本,JDK安装目录)
SET CATALINA_HOME= G:\Program Files\Apache Software Foundation\Tomcat7026A (目的是告诉脚本,解压后Tomcat 的目录)
打开文件 tomcat/bin/service.bat ,找到 rem Set default Service name 字样,在下面添加
SET CATALINA_HOME=G:\Program Files\Apache Software Foundation\Tomcat7026A (解压后Tomcat 的目录)
set SERVICE_NAME=Tomcat706A (服务名称)
set PR_DISPLAYNAME=Apache Tomcat706A (服务显示名称)
set PR_DESCRIPTION=均衡负载之第1号 Tomcat 服务,Tomcat706A (服务描述,可有无)
开始注册服务,打开cmd,cd 到你的tomcat/bin 目录,输入:service.bat install,提示成功则ok,
在这个cmd下输入:startup.bat 可以用于启动服务,它的特点就是有日志窗口,可以查看程序日志,在后面的验证会体现出来;
也可以通过打开window 服务管理器(开始,运行,services.msc),找到服务名(我的是Tomcat706A),启动它,特点是没有日志窗口;
接下来应该去配置tomcat的端口号啦,我的第二个Tomcat 取名叫 Tomcat706B,配置上也就路径、名字、端口号不一样,其他都一样。
4.2 配置Tomcat端口
第一个tomcat706A 端口配置:
<Server port="8071" shutdown="SHUTDOWN">
<Connector port="8061" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8051" protocol="AJP/1.3" redirectPort="8443" />
第二个tomcat706B 端口配置:
<Server port="8072" shutdown="SHUTDOWN">
<Connector port="8062" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8052" protocol="AJP/1.3" redirectPort="8443" />
启动这2个服务,验证修改端口后是否正常启动,正常则ok;
第五步:配置负载
5.1 新建配置文件
新建3个文件,如下文+下图(不确定你新建文件的编码格式,最好可以通过复制3份httpd.conf,把里面内容清掉,再命名成所需新建的文件名)
apache/conf/extra mod_jdk.conf
apache/conf/workers.properties
apache/conf/uiworkermap.properties
还有一点,把下载的 mod_jk-1.2.26-httpd-2.2.4.so 拷贝到 apache/modules 目录下,这个是 apache与tomcat 的连接器,简称jk;
5.2 配置mod_jk.conf
打开文件 mod_jk.conf 添加如下内容(#号行是配置文件的注释,要不要都不影响):
######################
#加载模块,这个 apache与tomcat 的连接器
LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so
#加载配置文件,这个可以叫做 集群配置文件
JkWorkersFile conf/workers.properties
#加载配置文件,这个可以叫做 请求处理分配文件
JkMountFile conf/uiworkermap.properties
#请求处理, jsp请求交给 controller 处理,controller在 workers.properties中有定义
JkMount /*.jsp controller
#同上
JkMount /*.do controller
#同上
JkMount /* controller
#################
5.3 配置 workers.properties
打开文件workers.properties 添加如下内容:
# worker 列表
worker.list=controller,jkstatus
###### 第一个worker的配置,名为worker_1
#tomcat 的主机地址,如不为本机,请填写ip地址
worker.worker_1.host=localhost
#ajp13 端口号,对应tomcat配置文件server.xml中Connector port="8009",默认8009
worker.worker_1.port=8051
worker.worker_1.type=ajp13
# 负载的权重值,越高表示负载越大
worker.worker_1.lbfactor=1
###### 第二个worker的配置,名为worker_2
worker.worker_2.host=localhost
#ajp13 端口号,对应tomcat配置文件server.xml中Connector port="9009"
worker.worker_2.port=8052
worker.worker_2.type=ajp13
worker.worker_2.lbfactor=1
#controller, 用于负载均衡分发的控制器
worker.controller.type=lb
# 重试次数
worker.controller.retries=3
# 指定负载的worker列表,用逗号分隔
worker.controller.balance_workers=worker_1,worker_2
# 配置session会话是否为粘性
# 这样负载均衡器lb就会尽量保持一个session,也就是使用户在一次会话中跟同一个Tomcat进行交互
worker.controller.sticky_session=true
# 如果sticky_session设为true时,此处一般设为false
worker.controller.sticky_session_force=false
# 设置运行状态的控制器
worker.jkstatus.type=status
5.4 配置uiworkermap.properties
打开文件 uiworkermap.properties,添加如下内容:
# 所有请求都由LB_worker 这个worker处理
/*=controller
# 所有包含jkstatus请求的都由名称叫jkstatus的这个worker处理
/jkstatus=jkstatus
第六步:验证
6.1 新建测试文件
分别在两个tomcat/webapps 下新建test目录和hello.jsp文件(tomcat/webapps/test/hello.jsp)
第一个tomcat706A内容为:
<%
System.out.println("tomcat706A===========11");
%>
第二个tomcat706B内容为:
<%
System.out.println("tomcat706B===========22");
%>
6.2 访问验证
重启apache服务,也重启tomcat服务,通过startup.bat方式启动,因为需要观看日志窗口,
使用2个浏览器,例如火狐、IE,都访问:10.10.15.15:8080/test/hello.jsp,你会发现2个tomcat的日志窗口有内容了,
刷新任意浏览器,这日志就会新增你测试文件hello.jsp中的内容,