nginx +tomcat集群配置

nginx +tomcat集群配置
nginx +tomcat集群配置

Nginx+Tomcat 集群配置

Nginx对处理静态文件(如html、jpg等)的性能十分优异,具有高并发、占用资源低、扩展性强的特点。Nginx的这个特点,对于专注于处理java的tomcat来说,可以说是个完美的搭档。生产环境下,已经取代早期的apache+tomcat,并且还可以使用Nginx结合jvm_router这个国人开发的扩展,做下tomcat的集群。

配置环境

两台服务器:192.168.0.239 192.168.0.240

操作系统:CentOS 6.3

Jdk:jdk-6u35-linux-x64.bin

Tomcat :6.0.35

Nginx :nginx-1.2.4

安装jdk

在第一台机器,192.168.0.239(以后称为A)安装JDK

1.使用命令chmod +x jdk-6u35-linux-x64.bin 赋予jdk执行权限。

2.安装jdk,使用命令:./jdk-6u35-linux-x64.bin

3.配置环境变量,拷贝jdk的目录到/usr下,/etc/profile文件的末尾

添加如下:

export JAVA_HOME=/usr/jdk

export PATH=$PATH:$JAVA_HOME/bin

exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/ tools.jar

4.使用命令:source /etc/profile ,使配置即刻生效。然后测试jdk

是否成功:java -version

5.第二台服务器同上安装jdk

安装Tomcat

1.下载apache-tomcat-6.0.35.tar.gz,解压到/usr目录下,并重命名为tomcat

2.进入/usr/tomcat的bin目录下,使用命令chmod +x ./* 给bin目录下的文

件,赋予可执行权利。

3.进入/usr/tomcat/conf目录下,编辑tomcat-users.xml文件,增加admin管理

员,并加入manager组。效果如下:

4.编辑tomcat下conf目录下的server.xml文件,编辑Connector,更改端口为:

8090,并调优线程数,具体如下:

maxThreads=”1500”

minSpareThreads=”100”

maxSpareThreads=”500”

acceptCount=”1000”

enableLookups=”false”

redirectPort=”8443″

connectionTimeout=”20000″/>

注释:

maxThreads:最大线程数,将其中的maxThreads=”150″修改为maxThreads=”

1500″,即可以最大承载1500个并发事务。一个用户基本上请求一次服务需要二个线程进行支持(一个是request,一个是response)。这样IGRP就可以承载最高750个用户的完全并发。maxThreads默认tomcat配置为200个。

minSpareThreads: 最小备用线程数,tomcat启动时的初始化的线程数,默认是25.

这个要根据负载情况自行调整了。太小了就影响反应速度,太大了白白占用资源maxSpareThreads:最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket

acceptCount:当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100,一般是设置的跟maxThreads一样大,这个值应该是主要根据应用的访问峰值与平均值来权衡配置的。如果设的较小,可以保证接受的请求较快相应,但是超出的请求可能就直接被拒绝;如果设的较大,可能就会出现大量的请求超时的情况,因为我们系统的处理能力是一定的。

enableLookups:设置为“false”来关闭DNS 查询。如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false 则不进行DNS查询,而是返回其ip地址。

5.在catalina.sh中,设置JAVA_OPTS='-Xms1024m –Xmx1512m'

注释:设置JAVA_OPTS='-Xms256m -Xmx512m',表示初始化内存为256MB,可以使用的最大内存为512MB。置。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%

6.修改server.xml文件的Engine部分,增加jvmRoute,此处为nginx负载时候

使用。此处为mycat1,第二台设置为mycat2

7.在另一台服务器192.168.0.240做如上同样设置

安装Nginx

1.使用命令tar -zxvf nginx-1.

2.4.tar.gz 解压nginx,并把解压后的目录拷贝到/usr

下,重名为nginx

2.下载pcre-8.20.tar.gz,解压缩后,进入pcre目录,使用命令./configure

--prefix=/usr/local/pcre &&make &&make install 编译并安装。

3.下载nginx-upstream-jvm-route-0.1.tar.gz ,解压后,拷贝目录到/usr下。

4.进入/usr/nginx 目录,使用命令:patch -p0

< ../nginx_upstream_jvm_route/jvm_route.patch

5.创建用户www及用户组www。编译、安装nginx:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/home/yanzi/pcre-8.20

--add-module=../nginx_upstream_jvm_route/ --user=www --group=www make

make install

*标红部分为pcre的源目录,切记

配置Nginx

1.更改nginx.conf的events部分,修改后如下:

2.修改nginx.conf,增加upstream段,此处为集群服务器群。upstream mybackend {

server 192.168.0.239:8090 srun_id=mycat1;

server 192.168.0.240:8090 srun_id=mycat2;

jvm_route $cookie_JSESSIONID|sessionid reverse;

}

在http段内,增加如下设置:

sendfile on;

keepalive_timeout 65;

include mime.types;

default_type application/octet-stream;

charset utf-8;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 300m;

tcp_nopush on;

tcp_nodelay on;

client_body_buffer_size 512k;

proxy_connect_timeout 5;

proxy_read_timeout 60;

proxy_send_timeout 5;

proxy_buffer_size 16k;

proxy_buffers 4 64k;

proxy_busy_buffers_size 128k;

proxy_temp_file_write_size 128k;

3 增加server段,对于静态文件如html、js、jpg由nginx处理,jsp转向tomcat处理。

server {

listen 80;

server_name 192.168.0.239;

charset utf-8;

#access_log logs/host.access.log main;

location / {

root /web;

index index.html index.htm;

}

error_page 404 404.html;

# redirect server error pages to the static page /50x.html

#

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80 #

location ~ \.jsp$ {

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $remote_addr;

proxy_pass http://mybackend;

}

}

tomcat集群

用apache和tomcat搭建集群,实现负载均衡 一、集群和负载均衡的概念 (一)集群的概念 集群(Cluster)是由两台或多台节点机(服务器)构成的一种松散耦合的计算节点集合,为用户提供网络服务或应用程序(包括数据库、Web服务和文件服务等)的单一客户视图,同时提供接近容错机的故障恢复能力。集群系统一般通过两台或多台节点服务器系统通过相应的硬件及软件互连,每个群集节点都是运行其自己进程的独立服务器。这些进程可以彼此通信,对网络客户机来说就像是形成了一个单一系统,协同起来向用户提供应用程序、系统资源和数据。除了作为单一系统提供服务,集群系统还具有恢复服务器级故障的能力。集群系统还可通过在集群中继续增加服务器的方式,从内部增加服务器的处理能力,并通过系统级的冗余提供固有的可靠性和可用性。 (二)集群的分类 1、高性能计算科学集群: 以解决复杂的科学计算问题为目的的IA集群系统。是并行计算的基础,它可以不使用专门的由十至上万个独立处理器组成的并行超级计算机,而是采用通过高速连接来链接的一组1/2/4 CPU的IA服务器,并且在公共消息传递层上进行通信以运行并行应用程序。这样的计算集群,其处理能力与真正超级并行机相等,并且具有优良的性价比。 2、负载均衡集群: 负载均衡集群为企业需求提供更实用的系统。该系统使各节点的负载流量可以在服务器集群中尽可能平均合理地分摊处理。该负载需要均衡计算的应用程序处理端口负载或网络流量负载。这样的系统非常适合于运行同一组应用程序的大量用户。每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实现平衡。对于网络流量也如此。通常,网络服务器应用程序接受了大量入网流量,无法迅速处理,这就需要将流量发送给在其它节点。负载均衡算法还可以根据每个节点不同的可用资源或网络的特殊环境来进行优化。 3、高可用性集群: 为保证集群整体服务的高可用,考虑计算硬件和软件的容错性。如果高可用性群集中的某个节点发生了故障,那么将由另外的节点代替它。整个系统环境对于用户是一致的。 实际应用的集群系统中,这三种基本类型经常会发生混合与交杂。 (三)典型集群 科学计算集群: 1、Beowulf 当谈到Linux 集群时,许多人的第一反映是Beowulf。那是最著名的Linux科学软件集群系统。实际上,它是一组适用于在Linux 内核上运行的公共软件包的通称。其中包括流行的软件消息传递API,如“消息传送接口”(MPI) 或“并行虚拟机”(PVM),对Linux 内核的修改,以允许结合几个以太网接口、高性能网络驱动器,对虚拟内存管理器的更改,以及分布式进程间通信(DIPC) 服务。公共全局进程标识空间允许使用DIPC 机制从任何节点访问任何进程。 2、MOSIX Beowulf类似于给系统安装的一个支持集群的外挂软件,提供了应用级的集群能力。而MOSIX 是彻底修改Linux的内核,从系统级提供了集群能力,它对应用而言是完全透明的,原有的应用程序,可以不经改动,就能正常运行在MOSIX系统之上。集群中的任何节点都可以自由地加入和移除,来接替其它节点的工作,或是扩充系统。MOSIX 使用自适应进程负载均衡和内存引导算法使整体性能最大化。应用程序进程可以在节点之间实现迁移,以利用最好

Tomcat集群与负载均衡

Tomcat集群与负载均衡(转载) 在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有点力不从心了。另外一个常见的问题是会产生单点故障,如果该服务器坏掉,那么网站就立刻无法运作了。不论是因为要有较佳的扩充性还是容错能力,我们都会想在一台以上的服务器计算机上执行WEB应用程序。所以,这时候我们就需要用到集群这一门技术了。 在进入集群系统架构探讨之前,先定义一些专门术语: 1. 集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。 2. 负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。 3. 特点:在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。集群系统(Cluster)主要解决下面几个问题: 高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。 高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。 负载平衡:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。 目前比较常用的负载均衡技术主要有: 1. 基于DNS的负载均衡 通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。 2. 反向代理负载均衡(如Apache+JK2+Tomcat这种组合) 使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。 3. 基于NAT(Network Address Translation)的负载均衡技术(如Linux Virtual Server,简称LVS)

多台服务器tomcat集群

多台服务器tomcat集群 集群背景介绍 1.1 术语定义 服务软体是b/s或c/s结构的s部分,是为b或c提供服务的服务性软件系统。服务硬体指提供计算服务的硬件、比如pc机、pc服务器。服务实体通指服务软体和服务硬体。客户端指接受服务实体服务的软件或硬件。 1.2 两大关键特性 集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但事实上集群由一组服务实体组成。与单一服务实体相比较,集群提供了以下两个关键特性: 可扩展性--集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。 高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出错的服务实体恢复到另一个服务实体的功能增

强了应用的可用性。 1.3 两大能力 为了具有可扩展性和高可用性特点,集群的必须具备以下两大能力:负载均衡--负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。 错误恢复--由于某种原因,执行某个任务的资源出现故障,另一服务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫错误恢复。 负载均衡和错误恢复都要求各服务实体中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图(信息上下文)必须是一样的。 1.4 两大技术 实现集群务必要有以下两大技术: 集群地址--集群由多个服务实体组成,集群客户端通过访问集群的集群地址获取集群内部各服务实体的功能。具有单一集群地址(也叫单一影像)是集群的一个基本特征。维护集群地址的设置被称为负载均衡器。负载均衡器内部负责管理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的转换。有的负载均衡器实现真正的负载均衡算法,有的只支持任务的转换。只实现任务转换的负载均

FineReport关于tomcat集群部署的方案

FineReport关于tomcat集群部署的方案

多台服务器集群后,配置权限、数据连接、模板、定时调度等,只能每台服务器一个个配置,不会自动同步到所有服务器。 针对上述情况,在FineReport中提供新集群部署插件,将xml配置文件、finedb/logdb 数据(定时任务、报表目录管理、批量导入、统计信息)的修改都对主机生效。其他辅机的信息读取也都从主机读取,保证了数据同步。 实现了灾备,即主机当即后,次主机会上位接替主机的工作,保证系统正常运作。 同时还增加了集群灾备之文件同步,会将主机的finedb、xml、模板、jar包、插件等等备份到其他节点的应用上。支持可以手动同步和自动同步。 插件介绍 设计器插件、服务器插件安装好之后,新集群部署,有主机、次主机、辅机之分,配置文件都从主机读取,辅机只能用作计算引擎分担压力,有点事当改配置文件的时候,不需要每个节点都去修改,直接改主机即可。 分布式集群 分布式集群文件系统:每台计算机各自提供自己的存储空间,并各自协调管理所有计算机节点中的文件。 这里测试修改主机的报表管理目录树平台标题,然后可以看到辅机会同步修改的配置。其中报表管理目录树存在finedb中,平台样式的平台标题存在fsconfig.xml中。 ?环境准备设置tomcat1、tomcat2、tomcat3集群,tomcat1为主机,tomcat2为辅机,tomcat3为次主机,tomcat集群。 WebReport工程分别放在tomcat下的webapps文件夹里 配置文件集群配置完成之后,修改将配置包resource文件夹下的cluster.xml打 开,如果没有这个文件的话,就新建一个,基本内容如下:

通过Terracotta实现基于Tomcat的Web应用集群

本文介绍如何配置Tomcat和Terracotta服务器将普通的Web应用部署到集群中,实现跨Tomcat节点的session复制,以达到负载均衡、提高系统吞吐量和灾难恢复的效果。 基本原理简介 一般利用Tomcat搭建Web应用集群有如下几种方法: 1、利用负载均衡器的粘session的方式把所有同一session的请求都发送到相同的Tomcat节点。这样不同用户的请求就被平均分配到集群中各个tomcat节点上,实现负载均衡的能力。这样做的缺点是没有灾难恢复的能力。一旦一个节点发生故障,这个节点上所有的session信息全部丢失; 2、利用Tomcat session复制的机制使得所有session在所有Tomcat节点中保持一致。当一个节点修改一个session数据的时候,该节点会把这个session的所有内容序列化,然后广播给所有其它节点。这样当下一个用户请求被负载均衡器分配到另外一个节点的时候,那个节点上有完备的session信息可以用来服务该请求。这种做法的问题是对session哪怕有一点点修改,也要把整个sessions数据全部序列化(serialize),还要广播给集群中所有节点,不管该节点到底需不需要这个session。这样很容易会造成大量的网络通信,导致网络阻塞。一般采用这种方式,当Tomcat节点超过4个时候,整个集群的吞吐量就不能再上升了; 3、第三种方式是通过cookie保存用户信息的一个或几个关键字,每一个http请求到达web应用的时候,web程序拿这个关键字到数据库中读取相关的数据,然后对其进行处理。也就是说把session数据保存到了数据库中。这样以来在内存中的session就完全不需要了。这样做的缺点就是加大了数据库的负载,使得数据库变成了集群的瓶颈。而通过构造数据库集群提高负载能力往往需要高额的成本。 Terracotta的基本原理是对于集群间共享的数据,当在一个节点发生变化的时候,Terracotta只把变化的部分发送给Terracotta服务器,然后由服务器把它转发给真正需要这个数据的节点。这样对网络的压力就非常小,各个节点也不必浪费CPU时间和内存进行大量的序列化操作。把这种集群间数据共享的机制应用在session同步上,相当于对tomcat第二种集群实现机制进行了优化,既避免了对数据库的依赖,又能达到负载均衡和灾难恢复的效果。在对比测试中,采用Terracotta搭建Tomcat集群,节点达到8个时候,整个集群的吞吐量还一直是线性增长的。 为了方便使用Terracotta搭建Tomcat集群,Terracotta提供了专门的插件tim-tomcat。下面将对集群的搭建进行详细描述。 准备工作 首先需要下载如下软件: Apache Tomcat 目前Terracotta官方支持的Tomcat版本为: Apache Tomcat Apache Tomcat Apache Tomcat Terracotta 或更高版本 安装过程 在所有机器上安装Java 请参考目前支持的软硬件平台 在所有机器上安装Terracotta 选一台机器作为Terracotta服务器

windows下Tomcat负载均衡和集群配置

轻松实现Apache,Tomcat集群和负载均衡 作者:罗代均 ldj_work#https://www.360docs.net/doc/8817879443.html,,转载请保持完整性 0,环境说明 Apache :apache_2.0.55 1 个 Tomcat: apache-tomcat-5.5.17 (zip版) 2个 mod_jk:: mod_jk-apache-2.0.55.so 1个 第一部分:负载均衡 负载均衡,就是apache将客户请求均衡的分给tomcat1,tomcat2....去处理 1.安装apche,tomcat https://www.360docs.net/doc/8817879443.html,/下载Apache 2.0.55 https://www.360docs.net/doc/8817879443.html,/download-55.cgi下载tomcat5.5 zip版本(解压即可,绿色版) https://www.360docs.net/doc/8817879443.html,/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/下载mod_jk,注意和 apache版本匹配 按照jdk,我的路径为:E:\ide\apache\Apache2 解压两份Tomcat, 路径分别为 E:\ide\tomcat1,E:\ide\tomcat2

下载mod_jk

2.修改Apache配置文件http.conf 在apache安装目录下conf目录中找到http.conf 在文件最后加上下面一句话就可以了 include "E:\ide\apache\Apache2\conf\mod_jk.conf"

2. http.conf 同目录下新建mod_jk.conf文件,内容如下 #加载mod_jk Module LoadModule jk_module modules/mod_jk-apache-2.0.55.so #指定 workers.properties文件路径 JkWorkersFile conf/workers.properties #指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器JkMount /*.jsp controller 3.在http.conf同目录下新建 workers.properties文件,内容如下 worker.list = controller,tomcat1,tomcat2 #server 列表 #========tomcat1======== worker.tomcat1.port=8009 #ajp13 端口号,在tomcat下server.xml配置,默认8009 worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址 worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor = 1 #server的加权比重,值越高,分得的请求越多 #========tomcat2======== worker.tomcat2.port=9009 #ajp13 端口号,在tomcat下server.xml配置,默认8009 worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址 worker.tomcat2.type=ajp13 worker.tomcat2.lbfactor = 1 #server的加权比重,值越高,分得的请求越多

Nginx Tomcat 配置负载均衡集群

一、Hello world 1、前期环境准备 1.准备两个解压版tomcat,如何同时启动两个tomcat,请看我的另一篇文章《一台机 器同时启动多个tomcat》。 2.nginx官网下载解压版nginx。 3.创建一个简单的web项目。为了直观的区分访问的哪个tomcat,在页面写上标记 8081、8082。 [MISSING IMAGE: , ] 4.分别部署到对应的tomcat下。如图: [MISSING IMAGE: , ] [MISSING IMAGE: , ] 2、配置nginx 进入nginx-1.10.1conf路径,修改配置文件nginx.conf。 1、配置服务器组,在http{}节点之间添加upstream配置。(注意不要写localhost,不然访问速度会很慢) upstream nginxDemo { server 127.0.0.1:8081; #服务器地址1 server 127.0.0.1:8082; #服务器地址2

2、修改nginx监听的端口号80,改为8080。 server { listen 8080; ...... } 3、在location{}中,利用proxy_pass配置反向代理地址;此处“http://”不能少,后面的地址要和第一步upstream定义的名称保持一致。 location / { root html; index index.html index.htm; proxy_pass http://nginxDemo; #配置方向代理地址 } 如下图: [MISSING IMAGE: , ] 3、启动nginx和tomcat,访问 我是Windows系统,所以直接在nginx-1.10.1目录下双击nginx.exe即可。 可在任务管理器中查看

apache2.2.16+mod_jk.1.2.30+tomcat7.0.2集群session复制

Apache+tomcat集群+session复制 作者:吴钢奇 时间:2010/09/23 MSN:w7374520@https://www.360docs.net/doc/8817879443.html, 目标:在服务器上搭建1个apache+4个tomcat应用,tomcat之间实现session复制。Tomcat解析所有的网页,apache此刻的作用就是做代理。参考了很多网上好文档,非常感谢前人无私奉献,谢谢! 1、环境 硬件:一个四核3.0CPU,4G内存,200GSATA硬盘 系统:Redhat AS 5.3 源码包下载: 1、Httpd下载 https://www.360docs.net/doc/8817879443.html,/apache//httpd/httpd-2.2.16.tar.gz 2、Tomcat下载 https://www.360docs.net/doc/8817879443.html,//tomcat/tomcat-7/v7.0.2-beta/bin/apache-tomcat- 7.0.2.tar.gz 3、mod_jk 下载地址: https://www.360docs.net/doc/8817879443.html,/dist/tomcat/tomcat-connectors/jk/source/jk- 1.2.30/tomcat-connectors-1.2.30-src.tar.gz 2、安装apache [root@adman ~]# cd /usr/local/src/ #进入源码包下载目录,这个可以随便定[root@adman src]# tar zxvf httpd-2.2.16.tar.gz #解压缩 [root@adman src]# cd httpd-2.2.16 #进入解压目录 [root@adman httpd-2.2.16]# ./configure --prefix=/usr/local/apache2 \ > --enable-cache \ #configure参数根据自己的需要添加 > --enable-mem-cache \ — 可以使用help获得相关参数 > --with-mpm=prefork \ > --enable-so \ > --enable-rewrite \ > --enable-ssl [root@adman httpd-2.2.16]# make #编译 [root@adman httpd-2.2.16]# make install #安装

linux下TOMCAT集群(proxy)安装文档

Linux下TOMCAT集群安装文档 1版本 Apache:httpd-2.2.21 Tomcat:apache-tomcat-6.0.18 2集群方式 使用Apache R-proxy方式 3 TOMCAT安装 上传apache-tomcat-6.0.18到服务器 Cd apache-tomcat-6.0.18 mkdir logs chmod 755 logs cd bin chmod 755 *.sh 启动:./startup.sh 关闭:./shutdown.sh 4 apache安装(源码安装方式) cd /usr/local/ mkdir apache2.2.21 上传httpd-2.2.21.tar.gz到服务器路径下 tar -zxvf httpd-2.2.21.tar.gz ./configure --prefix=/usr/local/apache2.2.21 --enable-mods-shared=most Make(编译) make install(安装)

5配置httpd.conf(假设需要更改监听的端口) 以下是列出两个需要修改的地方: ServerName 127.0.0.1:9008 Listen 9008 6启动 cd apache2.2.21/bin/ ./apachectl start 在浏览器中输入http://127.0.0.1/ 就可以看到 It works! 7安装mod_proxy.so和mod_proxy_ajp.so,mod_proxy_balancer .so模块 Cd /usr/local/apache2.2.21/httpd-2.2.21/modules/proxy /usr/local/apache2.2.21/bin/apxs -i -a -c mod_proxy.c proxy_util.c /usr/local/apache2.2.21/bin/apxs -i -a -c mod_proxy_ajp.c ajp*.c /usr/local/apache2.2.21/bin/apxs -i -a -c mod_proxy_balancer.c 安装成功后,可以到/usr/local/apache2.2.21/conf 查看文件httpd.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 8配置httpd.conf集群 #snail add 20111027 proxy配置信息

Tomcat6+Apache2.2集群配置说明文档

Tomcat6+Apache2.2集群配置说明文档 yysy2000@https://www.360docs.net/doc/8817879443.html, 2009-7-24 准备工作: 注:可点击链接直接下载相应的文件。 JDK 免述,这个要是搞不定,直接回家种地吧。本文使用1.6.0_13 Tomcat版本号:apache-tomcat-6.0.18.zip Apache版本号:apache_2.2.11-win32-x86-openssl-0.9.8i 另外:tomcat-connectors-1.2.28-src.zip(apache网站tomcat项目下有下载)mod_jk-1.2.28-httpd-2.2.3.so(2.2.3适合于apache2.2.x版本) 程序安装: 1.正常安装apache(默认安装到C:\Program Files\Apache Software Foundation\Apache 2.2 目录下) 2.解压缩apache-tomcat-6.0.18.zip到C:\Program Files\Apache Software Foundation\Tomcat6.0目录下,解压完毕后,重命名tomcat6.0_1, 3.复制tomcat6.0_1文件夹,重命名为tomcat6.0_2 4.拷贝mod_jk-1.2.28-httpd-2.2.3.so 到Apache2.2/modules目录下 5.解压tomcat-connectors-1.2.28-src.zip,拷贝tomcat-connectors-1.2.28-src\conf文件夹中的 workers.properties 到Apache2.2/conf 目录下(该文件中配置用于集群的Tomcat信息) tomcat配置: 注:以下配置使用端口号可自行定义,只要不和系统中已经使用的端口号冲突即可。 1.conf文件夹下的server.xml文件作如下修改: 1)更正SHUTDOWN端口(两个tomcat分别使用8005和8006) 2)HTTP1.1的connector可以关闭不使用(由apache调度),也可以不关闭(亦可访 问响应端口,即不通过apache调度,设定的端口不应与其他端口重复)。 3)更正AJP1.3端口(两个tomcat分别使用8090和8091),redirectPort亦应不同(分 别使用8443和8444)。 4)替换原来的engine标签,设置jvmRoute的路径以支持通过AJP的负载均衡(不同

用apache和tomcat搭建集群,实现负载均衡

型的企业应用每天都需要承受巨大的访问量,在着巨大访问量的背后有数台服务器支撑着,如果一台服务器崩溃了,那么其他服务器可以使企业应用继续运行,用户对服务器的运作是透明化的,如何实现这种透明化呢?由如下问题需要解决。 一.Session的复制 二.如何将请求发送到正常的服务器 针对以上问题,可以使用群集和负载均衡来解决,整体架构如下: (图片来自:https://www.360docs.net/doc/8817879443.html,) 中间由一台服务器做负载均衡(Load Balancer),它将所有请求,根据一定的负载均衡规则发送给指定的群集服务器(Cluster),群集服务器拥有着相同的状态和相同的应用程序,并且他们的Session是相互复制的,这样,不管访问哪台服务器都具有相同的结果,即使一台服务器崩溃掉以后,可以由其他集群服务器继续负责应用程序的运行。 Tomcat中如何配置群集我们假设有如下场景,一台负载均衡服务器负责请求的均衡,群集服务器A和群集服务器B组成一个群集,当某个群集服务器崩溃后,另外一台继续负责应用程序的运行。 一.配置Tomcat5.5.12群集服务器A 修改Tomcat配置文件server.xml

1.群集服务器A的端口号与B不冲突,即使Server Port,Connector,Coyote/JK2 AJP Connector的端口号唯一2.在Host元素下增加以下内容: 3.修改Web应用程序配置文件web.xml 在web.xml文件中元素下增加以下内容:

Linux平台Apache高可用双机集群Tomcat负载均衡集群配置手册

Linux平台Apache双机高可用集群 + Tomcat负载均衡集群配置手册

在这个配置手册中,使用的操作系统和软件清单如下: 操作系统: RedHat Enterprise Linux AS4 U4 64bit(安装时最好选择完全安装) 软件: jdk-1_5_0_15-linux-amd64.bin Tomcat5.5.26 httpd-2.0.63.tar.gz jakarta-tomcat-connectors-jk2-src-current.tar.gz ipvsadm-1.24.tar.gz libnet.tar.gz heartbeat-2.1.3-3.el4.centos.x86_64.rpm heartbeat-pils-2.1.3-3.el4.centos.x86_64.rpm heartbeat-stonith-2.1.3-3.el4.centos.x86_64.rpm 因为是linux操作系统,所以在安装软件时请使用对应自己操作系统内核的软件,这是整个集群成功的第一步。本配置手册中的软件都是对应RedHat Enterprise Linux AS4 U4 64bit 这个版本的软件。 jdk-1_5_0_15-linux-amd64.bin JAVA环境包使用的是64位1.5版 Tomcat版本为公司指定的5.5版本 Apache为2.0.63版 jakarta-tomcat-connectors-jk2-src-current.tar.gz 是连接Apache和Tomcat的连接插件,具体可以去Tomcat网站上查找下载 ipvsadm-1.24.tar.gz libnet.tar.gz 这两个是用于2台Apache服务器虚拟一个IP地址使用 heartbeat-2.1.3-3.el4.centos.x86_64.rpm heartbeat-pils-2.1.3-3.el4.centos.x86_64.rpm heartbeat-stonith-2.1.3-3.el4.centos.x86_64.rpm 这3个软件是用于2台Apache服务器之间的心跳检测

Tomcat集群搭建

本文Apache+Tomcat集群配置基于apache tomcat6.0.35 和apache http server 2.2实现均衡负载 准备环境 Apache Apache是http服务器,我们利用其对Tomcat进行负载均衡。目前最新版本为2.2.?,下载地址为https://www.360docs.net/doc/8817879443.html,/download.cgi#apache22。如下图: 目前已经出现Apache2.3.11,但是为beta版本,所以没有使用。 下载后直接安装msi即可,如果没有其他的http服务器(如iis)则应该可以成功安装,端口即为80,能够访问http://localhost/说明安装成功。建议不要监听80端口,因为有时候80端口已经被IIS服务器给占或者其他软件被占的话,apache server是安装不成功的(这样会报错:Address already in use: make_sock: could not bind to port 80/443…)。如果想改监听的端口,请修改httpd.conf,找到:listen 80 改成 listen 8080即可监听8080端口 Tomcat Tocmat7目前已经出现稳定版本的7.0.12,Tomcat6则为6.0.32。经我测试,这2个版本的Apache负载均衡配置过程都是一样的,因此下面的配置在Tomcat6或7集群是通用的。但是按照下面的配置,集群中Tomcat不能既有Tomcat6又有Tomcat7,否则虽能够负载均衡,但不能进行session复制,不知其他方式配置的集群是否可以。

Tomcat就不用怎么介绍了。既然在本地需要多个节点,那么需要下载ZIP 版本的Tomcat。 JK JK是Tomcat提供给http服务器的插件(个人理解的),下载地址为 https://www.360docs.net/doc/8817879443.html,/apache/tomcat/tomcat-connectors/jk/binaries /windows/。如下图:(请下版本号能对应的so) 这里选择的是mod_jk-1.2.31-httpd-2.2.3.so,如果http服务器是Apache2.0.X版本,则必须选择mod_jk-1.2.31-httpd-2.0.52.so,页面下方有英文的说明,大家可以看下。 其实我也在网上看到Apache2.2已经集成Tomcat插件模块了,可以不用JK 插件就可以实现Tomcat负载均衡,但也需要一些配置,而JK这个配置相比也不复杂,就先记录下来。 配置过程 下面就直接写过程了,我也是网络上学习的,只是总结下过程并且利用最新的Apache和Tomcat测试了下,还是与网络上有些不同的。 修改Apache配置 1、修改httpd.conf

Tomcat集群部署

T omcat集群部署 1 部署准备 (1) 1.1所需软件介绍 (1) 1.2windows平台 (2) 1.3Unix平台 (2) 2 部署步骤 (2) 2.1 坏境说明 (3) 2.2 安装过程 (3) 2.3 负载均衡过程 (4) 2.4 Tomcat集群配置 (6) 2.5 应用配置 (8) 2.6 关于会话复制 (9) 3.效果演示 (9) 3.1 成功后的效果 (9) 3.2 效果演示录像 (10) 4.相关说明 (10) 4.1 目录说明 (10) 4.2 其他说明 (10) 4.3 作者说明 (10) 1 部署准备 1.1所需软件介绍 ?Apache HTTP Server 该软件是Apache开源软件,主要用于HTTP请求服务,在加载一些插件后,也可实现一些其他的功能,如在加载JK插件后,其能实现集群以及负载平衡 的功能. 其详细的介绍可参考Apache官方网站中关于Apache HTTP Server的介绍,其网址为: https://www.360docs.net/doc/8817879443.html,/。在本次部署中,采用的是Apache HTTP Server 2.0版本. ?Tomcat

本次测试中采用的Tomcat5.0.28版本 Jk2插件 Apache的一个开源插件,主要用于实现集群,以及负载平衡。在本次部署中主要采用的JK2版本,这个插件比较难找,在Apache的官方网站上没有作为一个 单独项目列出来,而是放在与Tomcat相关的一个工具包中,下载地址为: https://www.360docs.net/doc/8817879443.html,/dist/tomcat/tomcat-connectors/ 1.2windows平台 windows 平台下的集群部署相对简单,其所需的软件均已编译好,下载后安装即可,其相关的软件已经下载,按照其后面讲解的部署步骤部署即可,其在网上的下载地址分别为: https://www.360docs.net/doc/8817879443.html,/download.cgi https://www.360docs.net/doc/8817879443.html,/download-55.cgi#5.0.28 https://www.360docs.net/doc/8817879443.html,/dist/tomcat/tomcat-connectors/jk2/binaries/win32/ 1.3Unix平台 Unix平台上部署相对复杂,所需的Apache HTTP Server2.0下载下来后,还需先经过编译后方可使用,考虑到在不同的unix系统上,尚有一些差异,编译这一步各位在部署时进行,本次部署时就不提供编译好的Apache HTTP Server 2.0,其所需的软件下载地址分别为: https://www.360docs.net/doc/8817879443.html,/download.cgi https://www.360docs.net/doc/8817879443.html,/download-55.cgi#5.0.28 https://www.360docs.net/doc/8817879443.html,/dist/tomcat/tomcat-connectors/jk2/binaries/solaris/ 2 部署步骤 以下部署步骤为引用自互联网上的原文

Tomcat集群及负载均衡配置

Tomcat集群及负载均衡配置 在单一的服务器上执行Web应用程序有一些重大问题,当网站的请求量越来越大,单一服务器终究无法满足需要处理的负荷量,所以就显得有点力不从心;而且还存在的问题是会产生单点故障,如果该服务器宕掉,那么网站就无法运作。不论是因为要有较佳的扩充性还是容错能力,我们都会想在一台以上的服务器上执行Web应用程序。所以,这时候我们就需要用到集群这一门技术。 1术语介绍 1.1 集群 集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就像是一个服务实体,但事实上集群由一组服务实体组成。与单一服务实体相比较,集群提供了以下两个关键特性: 可扩展性--集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。 高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service 的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出错的服务实体恢复到另一个服务实体的功能增强了应用的可用性。

1.2 负载均衡 负载的基础是集群,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同的硬件构成的计算机。如一个提供Web 服务的集群,对外界看来是一个大Web服务器。负载均即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。 2常用负载均衡技术 常用手负载均衡技术有以下几种 HTTP重定向 DNS负载均衡 反向代理负载均衡 IP负载均衡(NAT) 直接路由 IP隧道 本文介绍的是第三种使用apahce+tomcat的反向代理的负载均衡,使用代理服务器可以将请求转发全内部的Web服务器,让代理服务器均匀地转发给多台内部web服务器之一上,从而达到负载均衡目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

Tomcat6终极优化

Tomcat6内存和线程配置 当在对其进行并发测试时,基本上30个USER上去就当机了,还要修改默认连接数设置:以下红色四行TOMCAT6中好相没有,手工加上就可以了,基本上可以解决连接数过大引起的死机。具体数值可跟据实际情况设置 这样设置以后,基本上没有再当机过。。。。。 maxThreads="600"///最大线程数 minSpareThreads="100"///初始化时创建的线程数 maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。 acceptCount="700"//指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理 Tomcat6使用安装版本进行安装后,使用内存的调整无法利用修改启动文件的方式进行,但按缺省方式启动后如果启动的应用较多的话Tomcat经常会因为内存不足而失去响应,这个时候必须人工调整内存参数: 1.“开始”--“Apache Tomcat6”--“Configure Tomcat” 2.选择Java标签,在“Initial memory pool(初始内存)”和“Maximum memory pool(最大内存)”中输入你 需要的内存参数即可 与内存相关的tomcat错误处理: https://www.360docs.net/doc/8817879443.html,ng.OutOfMemoryError:这个错误是因为tomcat JVM的Permanent Generation space(内存的 永久保存区域)不足引起的,这个区域是JVM用于用于存放Class和Meta的信息的内存区域,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很多CLASS的话, 就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果 你的WEB APP下都用了大量的第三方jar,其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了,症状是tomcat运行一段时间后失去反应,服务中tomcat服务正常,重启tomcat服务后网站又正常响应了。解决方案是人工调整确认大小设置,使用regedit修改注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java中的Options参数,在后面增加一下数据: -XX:PermSize=64M

相关文档
最新文档