`

Apache2.4 + Tomcat8.0.33集群配置

 
阅读更多

环境信息

操作系统: Windows7 Professional

Tomcat 版本: Tomcat 8.0.33

Apache 版本: httpd-2.2.25-win32-x86-openssl-0.9.8y

 

1. 安装 Apache

1.1  下载 Windows 版 Apache

Apache 下载地址: http://httpd.apache.org/download.cgi

在下载页面选择”Binaries”( 哪个版本下的 ”Binaries”均可 )

然后选择” win32 /”

下载” httpd-2.2.25-win32-x86-openssl-0.9.8y ”( Apache 有两个版本 ” no_ssl ”和”openssl ”,即不支持 ssl 和支持 ssl 。 选择” openssl ”版是由于以后学习 ssl 会用到”openssl ”)

1.2 安装 Apache

双击” httpd-2.2.25-win32-x86-openssl-0.9.8y.msi”

Server 信息随便填

选择 Custom ,可以自定义 Apache 的安装路径

安装完成

此时,在 Windows 右下角可以看到 Apache 图标

 

右键此图标,选择 ”Open Apache Monitor”,可以看到 Apache Service Monitor 界面

在浏览器下输入 http://localhost ,看到 ”It works” ,表明 Apache 安装成功

 

1.3  修改 Apache 的启动类型

Apache 默认是自动启动的,可以到 ”服务”下修改其启动类型

右键计算机-管理-服务和应用程序-服务,找到 Apache2.2。 右键Apache2.2 ,选择属性,修改启动类型即可

1.4  卸载 Apache

打开”控制面板”,选择”卸载程序”,右键”Apache HTTP Server 2.2.25”,选择”卸载”

2. 部署 Tomcat 集群

2.1  创建 Tomcat-Cluster 目录

在 D 盘下新建 Tomcat-Cluster 文件夹,在 Tomcat-Cluster 下新建两个文件夹Tomcat1,Tomcat2

2.2  配置 Tomcat1

2.2.1 将 Tomcat ( Tomcat 8.0.3文件夹) 下的文件拷贝到 Tomcat1

2.2.2 创建测试项目 TestCluster

在 D:\ Tomcat-Cluster\Tomcat1\webapps 下,创建 TestCluster 文件夹,然后将ROOT 文件夹下的 WEB-INF 文件夹拷贝到 TestCluster 下

打开 TestCluster\WEB-INF\web.xml

在 </web-app> 上面添加 <distributable/>

(设置<distributable/>,即表明集群下某一节点生成或改变的 Session ,将广播到该集群的其它节点)

在 TestCluster 文件夹下 新建 index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.text.SimpleDateFormat"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>TestCluster</title>
  </head>
  <body>
        Server Info:
    <%
      String dtm = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
      System.out.println("["+request.getLocalAddr()+":"+ request.getLocalPort()+"]" + dtm);
      out.println("<br>["+request.getLocalAddr()+":" +request.getLocalPort()+"]" + dtm+"<br>"); 
    %>
    Session Info:
    <%
        session.setAttribute("name","dennisit");
        System.out.println("[Session Info] Session ID:"+session.getId());
        out.println("<br>[Session Info] Session ID:" + session.getId()+"<br>");
    %>
  </body>
</html>

2.2.3  修改 Tomcat1 的 Server.xml(Tomcat1\conf\Server.xml)

a.  将 Server 标签下的 8005 端口改为 7005 , Connector 标签下 8080,8009 端口改为 7080,7009 (为了避免端口冲突)

b .在 Engine 标签内添加 jvmRoute属性,将其设置为” Tomcat1”

c .将 Cluster标签的注释打开

修改后的server.xml ( 为了看起来简洁,删掉了 Tomcat 自带的注释 )

<?xml version='1.0' encoding='utf-8'?>

<!--将端口号由8005改为7005 -->
<Server port="7005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>
  <Service name="Catalina">
    
<!--将端口号由8080改为7080 -->
<Connector port="7080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
    
<!--将端口号由8009改为7009 -->
<Connector port="7009" protocol="AJP/1.3" redirectPort="8443" />

<!--在Engine标签添加jvmRoute属性-->
<Engine name="Catalina" defaultHost="localhost" jvmRoute="Tomcat1">
      
  <!--将Cluster标签的注释去掉-->
  <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      
  <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
      </Realm>
  <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
      </Host>
    </Engine>
  </Service>
</Server>

2.3  配置 Tomcat2

将Tomcat1 下的文件拷贝到 Tomcat2

修改Tomcat2 的 Server.xml

a.将端口7005,7080,7009 改为 9005,9080,9009

b. Engine 标签内 的jvmRoute改为” Tomcat2”

2.4  启动 Tomcat 集群

( 如果之前配置过 Tomcat 的环境变量,要先将 Tomcat 的环境变量删除 )

双击Tomcat1\bin\startup.bat 、 Tomcat2\bin\startup.bat

在浏览器下输入:http://localhost:7080/TestCluster/index.jsp ,即可访问集群下Tomcat1 节点的 TestCluster

在浏览器下输入: http://localhost:9080/TestCluster/index.jsp ,即可访问集群下Tomcat2 节点 的 TestCluster

可以看到 Tomcat1、Tomcat2 两个节点的 Session 一样

3.  整合 Apache 与 Tomcat 集群

整合 Apache 与 Tomcat 集群 可以使用 mod_proxy_balancer也可以使用mod_jk

3.1  使用 mod_proxy_balancer

a.  在 D:\Program Files\Apache 2.2\conf 下新建 mod_proxy_balancer.conf

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
<Proxy balancer://TestCluster>
BalancerMember ajp://127.0.0.1:7009 loadfactor=1
BalancerMember ajp://127.0.0.1:9009 loadfactor=1
#BalancerMember http://127.0.0.1:7080 loadfactor=1
#BalancerMember http://127.0.0.1:9080 loadfactor=1
</Proxy>
ProxyPass / balancer://TestCluster/

LoadModule-加载模块

Proxy-负责定义代理,该代理下可以包含多个处理请求的节点

BalancerMember-处理请求的节点 ( 设置 ajp、http 均可 )

loadfactor-权重。某一节点的权重越大,分配到该节点的请求越多

ProxyPass -Apache 向 Proxy 转发请求的条件(ProxyPass /*.jsp balancer://TestCluster/ ,表明 Apache 将 http://localhost/ 下的所有jsp 请求转发给 balancer://TestCluster/ 处理 )

b. 修改httpd.conf

打开httpd.conf(Apache 2.2\conf\httpd.conf),在 尾部添加一行代码 

include conf/mod_proxy_balancer.conf

同时把下面代码前面注释去掉:

LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so

d.  测试

重启 Apache ,然后在浏览器下输入 http://localhost/TestCluster/index.jsp ,可看到如下页面

刷新之后,看到如下页面


两次请求,分别转发到了Tomcat1节点、Tomcat2节点,并且两个节点的Session一样

3.2 使用mod_jk

a. 下载 Windows 版 mod_jk.so

Windows 版 mod_jk.so 下载地址: http://tomcat.apache.org/download-connectors.cgi

点击页面的”  Binary Releases ”,然后点击” windows /”

下载 ” tomcat-connectors-1.2.39-windows-i386-httpd-2.2.x.zip ”

解压该文件,可得到” mod_jk.so ”。将” mod_jk.so ”拷到 Apache 2.2\modules 目录下

b.   在 Apache 2.2\conf 下新建 workers.properties

worker.list=controller,Tomcat1,Tomcat2
#========Tomcat1========
worker.Tomcat1.port=7009
worker.Tomcat1.host=localhost
worker.Tomcat1.type=ajp13
worker.Tomcat1.lbfactor=1
#========Tomcat2========
worker.Tomcat2.port=9009
worker.Tomcat2.host=localhost
worker.Tomcat2.type=ajp13
worker.Tomcat2.lbfactor=1
#========controller========
worker.controller.type=lb
worker.controller.balanced_workers=Tomcat1,Tomcat2
worker.controller.sticky_session=false

( 如果 worker.controller.sticky_session 设为 true ,则同一用户的同一 session 始终和一个 Tomcat 节点交互 )

c.  在 Apache 2.2\conf 下新建 mod_jk.conf

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkMount /* controller

JkWorkersFile-workers.properties 的位置

JkMount-Apache将 http://localhost/ 下的所有请求转发给 controller 处理

d.  修改 httpd.conf

打开 httpd.conf(Apache 2.2\conf\httpd.conf), 将尾部的include conf/mod_proxy_balancer.conf 注释掉,并添加一行代码

include conf/mod_jk.conf

e.  测试

重启 Apache ,然后在浏览器下输入 http://localhost/TestCluster/index.jsp ,可看到如下页面

刷新之后,看到如下页面 

两次请求,分别转发到了Tomcat1节点、Tomcat2节点,并且两个节点的Session一样

Apache 和 Tomcat 集群 整合后, Apache 是接收请求的入口,它根据设置的转发请求条件,决定将哪些请求转发个 Tomcat 处理

通常的应用场景为: Apache 作为 Web Server ,它只负责处理静态页面,而动态页面会交给 Tomcat(App Server) 处理

分享到:
评论

相关推荐

    Apache2.4+Tomcat7服务器集群配置及软件.rar

    本资料包“Apache2.4+Tomcat7服务器集群配置及软件.rar”提供了详细的步骤和实例,帮助读者掌握如何配置这种服务器集群。 Apache2.4是Apache HTTP Server的最新版本之一,它提供了更好的性能、安全性以及更多的模块...

    apache2.4+tomcat 7 集群配置

    直接下载, 即可用 apache2.4+tomcat 7 集群配置

    apache2.4+tomcat7+mod_jk.so_整合配置

    Apache 2.4 和 Tomcat 7 的整合配置主要依赖于 mod_jk 模块,这是一个 Apache HTTP 服务器的模块,用于与 Tomcat 进行负载均衡和通信。`mod_jk.so` 是该模块的动态链接库文件,用于在 Apache 和 Tomcat 之间建立连接...

    apache2.4+tomcat7整合配置

    apache2.4+tomcat7整合配置,apache2.4+tomcat7整合配置,apache2.4+tomcat7整合配置

    apache2.4+tomcat7集群

    Apache 2.4 和 Tomcat 7 集群配置是一种常见的Web服务器和应用服务器部署方式,用于提高网站和应用程序的可伸缩性和高可用性。在Windows 7环境下搭建这样的集群,我们可以实现负载均衡、故障转移等功能,以确保服务...

    Apache2.4+Tomcat8.0集群安装--测试项目

    Apache2.4+Tomcat8.0集群安装--测试项目。集群配置地址为:

    Apache2.4+tomcat8.0+Jk

    Apache2.4、Tomcat8.0以及JK模块的结合使用是实现Web服务器与应用服务器之间负载均衡的一种常见方案。Apache作为前端服务器处理静态资源请求,而动态内容(如Java Web应用)则由Tomcat这样的Java应用服务器处理。JK...

    Apache2.4+tomcat7集群

    在压缩包文件"Apache2.4+tomcat7+clusters"中,可能包含了上述所有组件的安装包、配置文件示例以及详细的设置指南,帮助用户快速搭建和管理Apache2.4与Tomcat7的集群环境。对于初学者来说,这是一份宝贵的资源,可以...

    apache2.4 +tomcat7+mod_jk.so 完美整合实例

    Apache 2.4、Tomcat 7 和 mod_jk.so 的整合是将 Apache 作为前端服务器,用于处理静态内容和反向代理,而 Tomcat 作为后端应用服务器,主要负责处理 Java Servlet 和 JSP。这种架构组合可以充分利用 Apache 的高性能...

    windows下Apache2.4+Memcached1.4+Tomcat7集群环境

    windows下Apache2.4+Memcached1.4+Tomcat7集群环境 搭建后的部署包,开包即用,方便验证

    CentOS7下源码编译配置Apache2.4+MySQL5.6+PHP71

    在本文中,我们将深入探讨如何在CentOS 7操作系统上通过源代码编译来安装Apache 2.4、MySQL 5.6和PHP 7.1。这个过程对于那些希望自定义软件配置或在没有预装包的环境中部署这些服务的系统管理员来说非常有用。 首先...

    Apache2.4+tomcat7.0.73的配置以及说明

    本文将深入讲解如何配置Apache2.4以实现对Tomcat7.0.73的负载均衡和session共享复制,同时探讨mod_proxy和mod_jk两种代理方式。 首先,Apache2.4是HTTP服务器,负责处理客户端的HTTP请求,而Tomcat7.0.73是Java应用...

    apache2.4+tomcat8反向代理集群

    ### Apache2.4+Tomcat8 反向代理集群配置详解 #### 一、概述 在Windows环境下配置Apache2.4与Tomcat8的反向代理集群,涉及到多个步骤和技术要点,包括Apache与Tomcat的基本安装配置、负载均衡以及Session共享机制...

    [rar文件] windows下Apache2.4+Memcached1.4+Tomcat7集群环境搭建说明

    windows下Apache2.4+Memcached1.4+Tomcat7集群环境 搭建说明。 部署后的部署包另有上传,参见http://download.csdn.net/detail/ahcstone/9246701 开包即用,方便验证

    APACHE2.4+PHP5.3安装环境必备文件

    APACHE2.4 是APACHE最新版,最新版是没有php5apache2_4.dll这个文件的。所以如果需要配置PHP5.3环境,必须单独下载本文件才能正确配置。 注意:本文件仅适用于PHP 5.3 TS(线程安全)版本。不适合NTS,不适合...

    WIn10下Apache2.4+双Tomcat8集群所需材料

    WIn10下Apache2.4+双Tomcat8集群所需材料,内部包含环境变量配置.png,Tomcat的webapp内有包含单个.jsp的文件夹项目。可以参照https://blog.csdn.net/sinat_23030553/article/details/87568246进行配置。

    Apache+Tomcat服务器集群配置详细步骤

    ### Apache+Tomcat服务器集群配置详细步骤 #### 一、引言 在现代Web开发中,随着业务规模的不断扩大和用户需求的日益增长,单一服务器往往难以满足高性能、高可靠性的要求。为了应对这一挑战,通常采用Apache+...

    apache2.4+tomcat负载均衡配置源码

    下面将详细介绍如何配置Apache2.4和Tomcat来实现这一目标。 首先,Apache2.4作为反向代理服务器,负责接收来自客户端的HTTP请求,然后根据预设策略将这些请求转发到后端的多个Tomcat实例。Apache2.4的这种角色是...

    Apache2.4 与Tomcat8 整合配置

    Apache2.4 与Tomcat8 整合配置 参考资料 http://blog.csdn.net/heng_ji/article/details/50850253 http://blog.csdn.net/heng_ji/article/details/46011293 http://blog.csdn.net/Heng_Ji/article/details/50849184

    Apache2.4+Tomcat 集群配置 详细步骤解析-附件资源

    Apache2.4+Tomcat 集群配置 详细步骤解析-附件资源

Global site tag (gtag.js) - Google Analytics