windows2003环境,实现Apache Web服务器+Tomcat应用服务器负载均衡

前言:网络上好多人copy翻来的资料,都不正确,我花了一晚的时间zheng'li
环境:

系统名称数量
windows 2003 Enterprise Edition sp21
Apache:httpd-2.2.22-win32-x86-openssl-0.9.8t.msi1
Tomcat:apache-tomcat-6.0.35-windows-x86.zip2
mod_jk.so:tomcat-connectors-1.2.35-windows-i386-httpd-2.2.x.zip1
JDK1

术语说明

术语说明
%Apache%Apache安装目录
%Tomcat1%Tomcat1安装目录
%Tomcat2%Tomcat2安装目录

环境的安装

第一:安装windows系统、JDk(此处掠过)

第二:安装Apache

1、下载地址:http://labs.mop.com/apache-mirror//httpd/binaries/win32/httpd-2.2.22-win32-x86-openssl-0.9.8t.msi

2、下载完成后,双击安装

a、点击【Next】按钮

b、ServerName填写“localhost:8889”

c、邮箱填写localhost@163.com

d、安装路径为“D:\Program Files\Apache Software Foundation\Apache2.2”

e、一直next,直指完成。

第三:安装Tomcat

a、下载绿色版,下载地址:http://www.apache.org/dist/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35-windows-x86.zip

b、分别解压到“D:\apache-tomcat-6.0.35_1”以及“D:\apache-tomcat-6.0.35_2”目录下

第四:安装mod_jk.so

a、下载地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/tomcat-connectors-1.2.35-windows-i386-httpd-2.2.x.zip

b、下载完成后,把“mod_jk.so”解压到“%Apache%\modules”

负载均衡以及集群的配置

第一:Apache配置

a、打开目录“%Apache%\conf”,打开文件“httpd.conf”,修改监听端口Listen 8889,如下图所示


b、在httpd.conf文件末尾,增加mod_jk.conf的配置说明“Include conf/mod_jk.conf”,如下图所示


c、在目录“%Apache%\conf”下创建“mod_jk.conf”文件,文件内容如下:

#加载mod_jk Module
LoadModule jk_module modules/mod_jk.so
# 配置 mod_jk
#加载集群中的workers
JkWorkersFile conf/workers.properties
#加载workers的请求处理分配文件
JkMountFile conf/uriworkermap.properties
#指定jk的日志输出文件
JkLogFile logs/mod_jk.log
#指定日志级别
JkLogLevel warn
#指定哪些请求交给tomcat处理,"controller"为在 workers.propertise里指定的负载分配控制器名
JkMount /* controller

d、在目录“%Apache%\conf”下创建“workers.properties”文件,文件内容如下(网上的配置第一句一般写“worker.list=controller, tomcat1,tomcat2”,这样子会报错的,因为work.list指定的是web服务器,应该按照我下面的写法

#server 列表
worker.list=controller, status
#======== tomcat-6.0.35-1========
worker.tomcat1.port=7771 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1 #server的加权比重,值越高,分得的请求越多
#======== tomcat2========
worker.tomcat2.port=7772 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1 #server的加权比重,值越高,分得的请求越多
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balance_workers=tomcat1,tomcat2 #指定分担请求的tomcat
#粘性Session(默认是打开的) 当该属性值=True(或1)时,代表Session是粘性的,即同一Session在集群中的同一个节点上处理,Session不跨越节点。在集群环境中,一般将该值设置为False
worker.controller.sticky_session=False
worker.status.type=status

e、在目录“%Apache%\conf”下创建“uriworkermap.properties”文件,文件内容如下

#所有请求都由controller这个server处理
/*=controller
#所有包含jkstatus请求的都由status这个 server处理
#/jkstatus=status
#这里的"!”是“非”的意思。
!/*.gif=controller
!/*.jpg=controller
!/*.png=controller
!/*.css=controller
!/*.js=controller
!/*.htm=controller
!/*.html=controller

第二:Tomcat1配置

a、打开“%tomcat1%\conf\server.xml”,修改相关端口

端口类型默认新值
SHUTDOWN80059991
Connector protocol="HTTP/1.1"80808881
Connector protocol="AJP/1.3"80097771

b、开启Engine节点,修改jvmRoute属性,设置为“tomcat1”,这个tomcat1对应于“%Apache%\conf\workers.properties"中的tomcat1

c、开启集群配置,找到<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" /> ,去掉注释

第三:Tomcat2配置

a、打开“%tomcat2%\conf\server.xml”,修改相关端口

端口类型默认新值
SHUTDOWN80059992
Connector protocol="HTTP/1.1"80808882
Connector protocol="AJP/1.3"80097772

b、开启Engine节点,修改jvmRoute属性,设置为“tomcat2”,这个tomcat2对应于“%Apache%\conf\workers.properties"中的tomcat2

c、开启集群配置,找到<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" /> ,去掉注释

测试运行

第一:创建测试项目

a、在“%tomcat1%\webapps”新建一个目录“Test”

b、创建文件“test.jsp”,内容如下:

<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
out.println("<br> SessionID " + session.getId()+"<br>"); // 如果有新的 Session 属性设置
System.out.println("<br> SessionID " + session.getId()+"<br>");
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
} out.print("<b>Session 列表</b>"); Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value+"<br>");
System.out.println( name + " = " + value);
}
%>
<form action="test.jsp" method="POST">
名称:<input type=text size=20 name="dataName">
<br>
值:<input type=text size=20 name="dataValue">
<br>
<input type=submit>
</form>
</body>
</html>

c、新建WEB-INF目录,WEB-INF下新建web.xml,内容如下

<web-app xmlns=" http://java.sun.com/xml/ns/j2ee" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<display-name>TomcatDemo</display-name>
<distributable/>
</web-app>
注意:在你的应用的web.xml加入 <distributable/> 即可
d、拷贝Test目录至“%tomcat1%”以及“tomcat2”

第二:启动服务

a、先启动tomcat1、tomcat2
b、再启动Apache

第三:运行

a、在浏览器上输入“http://localhost:8889/Test/test.jsp”

b、输入名称、值,然后点击【Submit Query】按钮

c、如果在session 列表中出现你刚才输入的值,恭喜你,负载均衡以及集群已成功了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值