`
liyuandong
  • 浏览: 332074 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【服务配置】apache+tomcat配置负载均衡

 
阅读更多
1.   目标

使用 apache tomcat 配置一个可以应用的 web 网站,要达到以下要求:

1、  Apache 做为 HttpServer ,后面连接多个 tomcat 应用实例,并进行负载均衡。

2、  为系统设定 Session 超时时间,包括 Apache tomcat

3、  为系统屏蔽文件列表,包括 Apache tomcat

2.   安装 tomcat

2.1. 下载,解压 tomcat

不要下载安装版 , 下载地址

http://tomcat.apache.org

2.2. 配置 tomcat

2.2.1.     配置 server 的关闭口

我们需要在一台机器上跑 2 个不同的 tomcat ,需要修改不同的 tomcat 的关闭口,避免出现端口被占用的情况。在 server.xml 中找到 server, 将:

<Server port="8005" shutdown="SHUTDOWN">

改为

<Server port="XXXX" shutdown="SHUTDOWN">

XXXX 在这里表示不同的端口:我的两个 tomcat 分别使用 8035 8045

 

注意:这里之所以要配置不同的 tomcat 关闭口,只是因为我们使用了多个 tomcat ,其实用一个 server 多个实例也可以。

2.2.2.     配置 service

我们需要对不同的 tomcat service 取不同的名字,在 server.xml 中找到:

<Service name="Catalina">

改为:

<Service name="XXXX">

两个 service 分别为 tomcat6 tomcat5

2.2.3.     配置 Connector

这个部分主要是要改两个 Connector ,当然前提是你的 tomcat 只有两个 Connector

修改 ajp1.3 的端口:

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

改为: <Connector port="XXXX" protocol="AJP/1.3" redirectPort="8443" />

两个 Service ajp/1.3 的端口分别为: 8019 8029

修改 http 的端口:

找到:

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

               maxThreads="150" connectionTimeout="20000"

               redirectPort="8443" />

改为:

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

               maxThreads="150" connectionTimeout="20000"

               redirectPort="8443" />

两个 Service ajp/1.3 的端口分别为: 8060 8070

2.2.4.     配置 Engine

Engine 主要是配置 jvmRoute 属性,找到:

<Engine name="Catalina" defaultHost="localhost">

改为:

<Engine jvmRoute="XXXX" name="Catalina" defaultHost="localhost">

两个实例分别为: tomcat6 tomcat5.

2.2.5.     配置公用性 Context

如果有 Context 是多个系统公用的,比如图片等的存放地,可以做个配置:

Host 中增加:

<Context path="/image" docBase="D:\webRoot\image" debug="0" reloadable="false" crossContext="true">

</Context>

2.2.6.     屏蔽文件列表

打开 tomcat 目录下的 conf/web.xml

找到:

<servlet>

        <servlet-name>default</servlet-name>

        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

        <init-param>

            <param-name>debug</param-name>

            <param-value>0</param-value>

        </init-param>

        <init-param>

            <param-name>listings</param-name>

            <param-value>true</param-value>

        </init-param>

        <load-on-startup>1</load-on-startup>

    </servlet>

listings 参数改为 false;

2.3. 配置应用 (web.xml)

对系统应用做些控制。

配置 session 过期时间,大多数网站用户都只是做些浏览性的操作,为了减轻服务器负载压力,我们将 session 超时时间从默认的 30 分钟变为 5 分钟。

web 应用程序的 web.xml servlet-mapping 之后增加如下一段:

<session-config>

    <session-timeout>5</session-timeout>

</session-config>

3.   安装 Apache

3.1. 下载、安装 Apache

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

下载后点击安装 msi 文件。

安装的时候没有什么特别需要注意的地方,按照默认就行了。是否安装为 service 看具体情况而定。

3.2. 下载、安装 Apache tomcat Connector

http://tomcat.apache.org/download-connectors.cgi

注意,很多网站上都介绍是 JK2 ,可能是觉得 JK2 JK 要新吧,其实 JK2 已经停止研发了,建议使用 jk1.2

下载压缩包,之后将 module 目录中的 mod_jk-apache****.so 文件放入 /module/ 目录下。

3.3. 配置 Apache httpd.conf

3.3.1.     配置端口:

找到

Listen 80

改为

Listen **

当然如果不需要改的话,就不用改了。正常情况无须更改。

3.3.2.     配置 DocumentRoot

找到 DocumentRoot 段,将其改为:

DocumentRoot "E:/MyWebsite"

这里的 "E:/MyWebsite" 指的是你的 web 程序的根路径,视具体应用而定。

3.3.3.     配置 serverName

找到 serverName 这个段,将其配置为你的 ServerName

如果没有配置为域名,配为 IP 也可以,此处还不是很清楚,多虚拟主机的情况的配置。

3.3.4.     配置虚拟主机

<VirtualHost *:80>

    ServerAdmin flyffa@gmail.com

    DocumentRoot       E:/MyWebsite

    ServerName localhost

    DirectoryIndex index.html index.htm index.jsp

    ErrorLog logs/error_log

    CustomLog logs/access_log common

    ErrorDocument 404 /sys/logon.jsp

</VirtualHost>

3.4. 配置 JK 方式的负载均衡

3.4.1.     配置 module

我们需要与 tomcat 做连接,所以要把 tomcat connector 的模块配置进去。

LoadModule 部分加入:

LoadModule jk_module modules/mod_jk-apache-2.0.55.so -加载模块

这个 so 是我下载的版本,个人可以根据自己下载的文件名加以配置

JkWorkersFile conf/workers.properties -指定 connector 的配置文件名称

JkLogFile logs/mod_jk.log -指定 connector 的日志文件名称

JkLogLevel info -指定 connector 的日志等级

3.4.2.     配置 worker 列表 (conf/workers.properties)

定义列表

worker.list=tomcat6,tomcat5,loadbalancer

定义一个名为 “loadbalancer” worker

其作为对多个 Tomcat 进程的负载平衡使用:

worker.loadbalancer.type=lb

worker.loadbalancer.balanced_workers=tomcat5, tomcat6

负载平衡类型的 worker 并不与 Tomcat worker 通讯,它负责管理这些 Tomcat worker

定义多个 worker 列表

# Set properties for tomcat6 (ajp13)

worker.tomcat6.type=ajp13

worker.tomcat6.host=localhost

worker.tomcat6.port=8019

worker.tomcat6.lbfactor=50

worker.tomcat6.cachesize=10

worker.tomcat6.cache_timeout=600

worker.tomcat6.socket_keepalive=1

worker.tomcat6.reclycle_timeout=300

 

# Set properties for tomcat5 (ajp13)

worker.tomcat5.type=ajp13

worker.tomcat5.host=localhost

worker.tomcat5.port=8029

worker.tomcat5.lbfactor=50

worker.tomcat5.cachesize=10

worker.tomcat5.cache_timeout=600

worker.tomcat5.socket_keepalive=1

worker.tomcat5.reclycle_timeout=300

注意: lbfactor= 50 当此 Tomcat worker 被用于一个负载平衡 worker 使用时,此属性将被使用。它定义了此 worker 的负载平衡权值。

cachesize= 10 当在多线程的 web server (例如 apache2.0 IIS Netscape )中使用 JK 时,此属性是有效的。如果将 cachesize 的值设置为较高的值,这些支持多线程的 web server 将获得很好的处理能力。如果此属性不被设置,则连接 cache 特性将失效。

3.4.3.     配置 Apache tomcat 的桥接

DocumnetRoot 片段下加入

JkMount /*.jsp tomcat6

JkMount /*.do tomcat6

JkMount /*Servlet tomcat6

这里只是简单的将 apache 的请求转到其中的一个 tomcat 中,形成桥接,至于负载均衡的时候,就无须进行这步操作,直接启动负载均衡。启动负载均衡见下一节。

3.4.4.     启动负载均衡

DocumnetRoot 片段下加入

JkMount /*.jsp loadbalancer

JkMount /*.do loadbalancer

JkMount /*Servlet loadbalancer

-指定对所有的请求启动负载均衡,这里的 loadbalancer 是定义的 worker 的名字

这里我在配置的时候犯了两个错误:

第一是没有配置 JkWorkersFile conf/workers.properties ,以为 Apache 会自动认识(其实 apache 是自动产生了一个叫做 ajp13 worker ,指向本机的 8009 端口)。

第二是以为 JkMount 语句中出现 loadbalancer,ajp13 之类的是系统设定的东西,其实都是在 workers.properties 文件中定义的,结果出现名字不匹配的情况。后来配置了 JkLogFile logs/mod_jk.log 之后看到错误日志才明白。

3.5. 配置 Proxy 方式的负载均衡

分享到:
评论

相关推荐

    apache+tomcat+jk 均衡负载和集群

    Apache+Tomcat+JK是一个常见的Web服务器和应用服务器集群解决方案,用于实现负载均衡和高可用性。这个配置中,Apache作为前端反向代理服务器,Tomcat作为后端的应用服务器,而JK模块是Apache与Tomcat之间的连接器,...

    apache+tomcat7+jk负载均衡

    配置Apache+Tomcat7+jk负载均衡的基本步骤如下: 1. 安装Apache HTTP Server和Tomcat7,确保它们都能正常运行。 2. 配置mod_jk模块。这通常包括编译和安装mod_jk,然后在Apache的配置文件(如httpd.conf)中加载该...

    配置安装Apache+Apache Tomcat实现tomcat负载均衡教程.doc

    配置安装Apache+Apache Tomcat实现tomcat负载均衡教程.doc

    Apache+Tomcat+JK 实现集群负载均衡文档

    Apache+Tomcat+JK 实现集群负载均衡是一种常见的Web服务器和应用服务器的部署方式,它能够提高系统的可用性和响应速度,实现服务的高并发处理。本文将详细介绍如何配置这一环境。 首先,我们需要准备以下软件: 1. ...

    windows平台apache+tomcat+说明文档负载均衡整个环境

    本人自己配置的windows平台apache+tomcat负载均衡实现,这个资源中包括apache,tomcat,测试项目+说明文档。只要正确安装apache,即可直接正常运行。本人参考网络,所以给贡献网络。

    apache+tomcat集群配置

    本文将详细介绍如何配置 Apache + Tomcat 集群,包括安装 Apache 和 Tomcat 服务器、配置 mod_jk 模块、配置 Apache 和 Tomcat 服务器、配置负载均衡控制器等。 一、安装 Apache 服务器 首先,需要安装 Apache ...

    .在32位操作系统上配置apache+tomcat集群/负载均衡/session复制

    标题中的“在32位操作系统上配置apache+tomcat集群/负载均衡/session复制”涉及到的是在32位系统环境下,如何构建一个使用Apache HTTP Server作为前端负载均衡器,与多个Tomcat应用服务器协同工作的集群环境,并实现...

    Apache+tomcat实现负载均衡

    本篇文章将详细介绍如何使用Apache和Tomcat实现负载均衡。 负载均衡的核心思想是将来自用户的请求分发到多个服务器上,以避免单一服务器过载。在Apache与Tomcat的组合中,Apache通常作为前端负载均衡器,通过HTTP...

    Apache+Tomcat+Linux集群和均衡负载(Session同步复制

    Apache+Tomcat+Linux集群和均衡负载(Session同步复制

    Apache+JK+Tomcat搭建负载均衡

    Apache+JK+Tomcat搭建负载均衡是一种常见的高可用性和性能优化策略,主要目的是分散网络流量,提高服务的稳定性和响应速度。这个方案特别适合大型网站或应用,可以有效防止单点故障,提升用户体验。 首先,负载均衡...

    tomcat+apache+jk集群和负载均衡

    在IT领域,特别是Web服务架构中,通过使用Tomcat、Apache和JK代理模块实现集群与负载均衡是一种常见的优化策略,旨在提升系统性能、稳定性和可用性。以下是对标题“tomcat+apache+jk集群和负载均衡”以及描述...

    Apache+Tomcat集群和负载均衡的资料

    ### Apache+Tomcat集群与负载均衡配置详解 #### 一、环境说明 为了实现Apache与Tomcat集群的负载均衡,我们需要准备以下环境: 1. **服务器配置**:四台服务器,其中一台安装Apache,三台安装Tomcat。 - Apache...

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

    **步骤3:Tomcat配置** - 修改两个Tomcat实例的`conf/server.xml`文件,启用`Cluster`支持: ```xml className="org.apache.catalina.ha.tcp.SimpleTcpCluster" memberPort="8009" senderClassName="org....

    Apache+Tomcat集群和负载均衡及Session绑定

    #### 3.2 配置负载均衡器 配置Apache的httpd.conf文件,添加JK2模块配置,包括定义每个Tomcat服务器的worker,设置负载均衡策略(例如轮询、最少连接数等)。 ```apacheconf LoadModule jk_module modules/mod_jk....

    Apache+Tomcat+Linux集群和负载均衡

    在IT领域,Apache+Tomcat+Linux集群与负载均衡技术是实现高可用性、高性能Web服务的重要手段之一。本文将围绕这一主题展开详细讨论,涵盖关键技术概念、配置流程及注意事项等内容。 #### 一、概述 **Apache+Tomcat...

    Apache+Tomcat集群的负载均衡配置文件和测试文件

    本主题聚焦于"Apache+Tomcat集群的负载均衡配置",通过Apache作为前端代理服务器,对后端的多个Tomcat实例进行负载分发,以实现高可用和高性能的服务。 首先,我们要理解负载均衡的基本概念。负载均衡是指将流入的...

    Apache+tomcat负载均衡

    在Apache中配置负载均衡,首先需要安装mod_proxy和mod_proxy_balancer模块。这些模块允许Apache作为反向代理服务器,接收用户请求并转发到适当的Tomcat实例。以下是一个基本的配置示例: ```apacheconf LoadModule ...

    Apache+Tomcat+JK配置负载均衡

    总之,Apache+Tomcat+JK的配置负载均衡是一种实用的架构,通过合理的配置,可以有效地提高Web服务的可用性和性能。在实际操作中,还需要根据服务器资源、网络环境和应用需求等因素,灵活调整配置,以达到最佳效果。

Global site tag (gtag.js) - Google Analytics