`
zengshaotao
  • 浏览: 796266 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Apache+Tomcat集群(LINUX)

 
阅读更多


前提条件:
linux服务器,有网络;
服务器已经安装了jdk1.6或者更高版本,并且在已经配置好了环境变量JAVA_HOME、JRE_HOME、PATH等。


一、下载apache-httpd
下载地址:http://httpd.apache.org/ 或者http://httpd.apache.org/download.cgi
本教程选择httpd-2.2.29,因此下载了httpd-2.2.29.tar.gz


二、安装apache-httpd
1.上传。将httpd-2.2.29.tar.gz上传到linux服务器。
2.解压。tar -xvf httpd-2.2.29.tar.gz 解压压缩包。
3.安装。切换到httpd-2.2.29解压目录,依次执行以下命令。(将apache-httpd安装在/app/httpd/下)
./configure --prefix=/app/httpd/
make
make install
4.测试启动。切换到httpd-2.2.29安装目录,启动服务。
cd /app/httpd/bin/
./apachectl start
如果没有提示错误或使用下面命令显示一系列进程,表示安装成功。
ps -ef|grep httpd


三、安装tomcat
1.下载tomcat。下载地址:http://tomcat.apache.org/ 。本教程下载的是apache-tomcat-6.0.39.tar.gz。将下载的tomcat压缩包上传到linux服务器。
2.安装tomcat。将apache-tomcat-6.0.39.tar.gz解压到/app/tomcat/下,apache-tomcat-6.0.39重命名为tomcat1,然后拷贝一份,命名为tomcat2。
tar -xvf apache-tomcat-6.0.39.tar.gz -C /app/tomcat/
mv /app/tomcat/apache-tomcat-6.0.39 /app/tomcat/tomcat1
cp /app/tomcat/tomcat1 /app/tomcat/tomcat2
3.修改配置。
修改端口号和tomcat名,修改conf下的server.xml
tomcat1:
<Server port="8005" shutdown="SHUTDOWN" debug="0">
改为
<Server port="10001" shutdown="SHUTDOWN" debug="0">


<Connector port="80"
      maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
      enableLookups="false" redirectPort="8443" acceptCount="100"
      debug="0" connectionTimeout="20000"
      disableUploadTimeout="true" URIEncoding="GBK"/>
改为 <Connector port="10002"
      maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
      enableLookups="false" redirectPort="8443" acceptCount="100"
      debug="0" connectionTimeout="20000"
      disableUploadTimeout="true" URIEncoding="GBK"/>


<Connector port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />
改为
<Connector port="10003" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />


<Engine name="Catalina" defaultHost="localhost" >
改为
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">


<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
去掉注释


tomcat2:
<Server port="8005" shutdown="SHUTDOWN" debug="0">
改为
<Server port="11001" shutdown="SHUTDOWN" debug="0">


<Connector port="80"
      maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
      enableLookups="false" redirectPort="8443" acceptCount="100"
      debug="0" connectionTimeout="20000"
      disableUploadTimeout="true" URIEncoding="GBK"/>
改为 <Connector port="11002"
      maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
      enableLookups="false" redirectPort="8443" acceptCount="100"
      debug="0" connectionTimeout="20000"
      disableUploadTimeout="true" URIEncoding="GBK"/>


<Connector port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />
改为
<Connector port="11003" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />


<Engine name="Catalina" defaultHost="localhost" >
改为
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">


<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
去掉注释


修改完成后可以启动tomcat测试端口是否可用。


四、apache-httpd配置
1.下载mod_jk.so。下载地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/ 。选择linux/目录下的对应的mod_jk.so。
例如本教程使用的是httpd-2.2.29,64位的linux,选择的是linux/jk-1.2.31/x86_64/mod_jk-1.2.31-httpd-2.2.x.so
2.将下载的mod_jk-1.2.31-httpd-2.2.x.so拷贝至/app/httpd/modules/下。
3.修改/app/httpd/conf/httpd.conf 。
#监听端口,改为80,如果80已经被占用,可以该为其他端口。
Listen 80
#如果Directory中是Deny from all ,改为Allow from all
<Directory "/app/httpd/cgi-bin">
   AllowOverride None
   Options None
   Order allow,deny
   Allow from all
</Directory>
#加入文件mod_jk.conf,虽然这些配置可以直接配置在httpd.conf中,但还是单独拿出来比较明朗。
include conf/mod_jk.conf
4.创建文件mod_jk.conf
touch /app/httpd/conf/mod_jk.conf
vi /app/httpd/conf/mod_jk.conf
在文件中添加一下内容,注意mod_jk.so文件名使用自己下载的文件。本教程使用的是mod_jk-1.2.31-httpd-2.2.x.so
##################### mod_jk.conf ########################
# Load mod_jk module
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.x.so




# Where to find workers.properties
JkWorkersFile conf/workers.properties




# Where to put jk logs
JkLogFile logs/mod_jk.log




# Set the jk log level [debug/error/info]
JkLogLevel info




# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "




# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories




# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"


JkAutoAlias /export/home/tomcat/tomcat_vcmplat/webapps


# Send JSPs for context / to worker named loadBalancer
#JkMount /*.jsp loadBalancer
#JkMount /*.do* loadBalancer
JkMountFile conf/urimap.properties


###################### end mod_jk.conf ####################


5.创建workers.properties
touch /app/httpd/conf/workers.properties
vi /app/httpd/conf/workers.properties
在文件中添加一下内容。
##################### workers.properties ########################
#server


worker.list = loadBalancer


#========tomcat1========
worker.tomcat1.port=10003


worker.tomcat1.host=localhost


worker.tomcat1.type=ajp13


worker.tomcat1.lbfactor = 1


#========tomcat2========


worker.tomcat2.port=11003


worker.tomcat2.host=localhost


worker.tomcat2.type=ajp13


worker.tomcat2.lbfactor = 1



#========loadBalancer,负载均衡控制器========


worker.loadBalancer.type=lb


worker.loadBalancer.balanced_workers=tomcat1,tomcat2


#会话粘性,如果为true或1,一个用户在一个Tomcat中建立了会话后则此后这个用户的所有操做都由这个Tomcat服务器承担
worker.loadBalancer.sticky_session=false


#worker.loadBalancer.sticky_session为true时才有效
#如果sticky_session_force为true也就是强制会话与当前Tomcat关联,那么会报500错误,如果设为false则会转到另外的Tomcat服务器
#worker.loadBalancer.sticky_session_force=1

#worker.loadBalancer.sticky_session=1


################## end workers.properties ##################


6.创建urimap.properties
touch /app/httpd/conf/urimap.properties
vi /app/httpd/conf/urimap.properties
在文件中添加一下内容。/*是对所有请求处理
##################### urimap.properties ########################
/*=loadBalancer
!/*.gif=loadBalancer
!/*.jpg=loadBalancer
!/*.png=loadBalancer
!/*.css=loadBalancer
!/*.js=loadBalancer
!/*.htm=loadBalancer
!/*.html=loadBalancer
!/*.mid=loadBalancer
!/*.xml=loadBalancer
!/*.txt=loadBalancer
!/*.mp3=loadBalancer


################## end urimap.properties ##################


五.重启apache-httpd
/app/httpd/bin/apachectl stop
/app/httpd/bin/apachectl start


1.输入http://121.40.120.56:80/ 查看是否能够正常访问(其中121.40.120.56为服务器ip)。
2.用MyEclipse新建一个web项目Test,在WebRoot下添加test.jsp,内容如下。web.xml中添加 <distributable/> 。然后将此项目部署到tomcat1和tomcat2下,重启tomcat1和tomcat2,
输入http://121.40.120.56:80/Test/test.jsp
http://121.40.120.56:10002/Test/test.jsp
http://121.40.120.56:11002/Test/test.jsp
查看不同tomcat下的sessionId是否相同,如果相同,说明session复制成功。


<%@ page contentType="text/html; charset=GBK" %>

<%@ page import="java.util.*" %>

<html><head><title>Test</title></head>

<body>

Server Info:

<%

out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>

<%

out.println("<br> ID " + session.getId()+"<br>");

// 如果有新的 Session 属性设置

String dataName = request.getParameter("dataName");

if (dataName != null && dataName.length() > 0) {

    String dataValue = request.getParameter("dataValue");

    session.setAttribute(dataName, dataValue);

}

out.println("<b>Session 列表</b><br>");

System.out.println("============================");

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
分享到:
评论

相关推荐

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

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

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

    - 通过浏览器访问`http://172.16.116.1/index.jsp`,检查是否能够成功访问,并观察日志文件确认请求是否被正确地分发至Tomcat集群中的不同节点。 #### 四、注意事项 1. **权限问题**: 确保所有操作均以具有足够...

    apache+tomcat集群文档

    - 本文档针对Apache Tomcat集群配置进行了详尽的说明,特别适合新手入门学习,通过本文档能够快速掌握Apache Tomcat集群的基本概念、搭建步骤及注意事项。 #### 知识点详解: ##### 一、集群基础知识 1. **学习...

    Linux下Apache+Tomcat集群指南

    ### Linux下Apache+Tomcat集群指南 #### 一、系统集群环境安装指南 **1.1 文档说明** 本文档旨在详细介绍如何在Linux环境下搭建Apache+Tomcat集群,并实现负载均衡及Session复制等功能。该文档适合希望提高Web...

    Apache+Tomcat集群配置

    ### Apache+Tomcat集群配置详解 #### 一、技术基础 Apache和Tomcat均属于Apache基金会旗下的开源项目,二者在Web服务领域各自扮演着重要的角色。Apache是一款强大的HTTP Web服务器,支持多种操作系统(如Windows、...

    apache+tomcat集群配置

    Apache与Tomcat集群配置是构建高可用性和负载均衡Web服务的一种常见方法,主要适用于大型、高流量的Web应用程序。这个过程涉及到Apache HTTP Server(通常简称为Apache)作为前端负载均衡器,以及多个Tomcat实例作为...

    Apache+Tomcat集群

    在Apache+Tomcat集群的配置中,`mod_jk`模块扮演着关键角色。它是Apache的Jakarta连接器,负责在Apache和Tomcat之间建立通信,实现负载均衡和故障转移。这个模块通过一个名为`worker.properties`的配置文件定义了与...

    Liunx 下 apache+tomcat 集群建设2

    在Linux环境中,构建Apache+Tomcat集群是一种常见的高可用性和负载均衡解决方案,它能够提高Web应用的性能和稳定性。Apache作为前端服务器,负责接收HTTP请求,并通过特定的连接器(如mod_jk)将这些请求转发到后端...

    Apache+Tomcat集群、优化配置

    ### Apache+Tomcat集群、优化配置 #### 一、文档目的 本文档旨在提供详细的步骤指导,帮助读者在本地环境中成功搭建Apache与Tomcat的服务集群,并进行必要的性能优化。通过这种方式,可以有效地测试项目的性能,...

    如何搭建apache+tomcat集群

    【标题】:“如何搭建apache+tomcat集群” 在IT行业中,服务器集群是一种常见的技术实践,用于提高应用的可用性和性能。Apache HTTP Server和Tomcat是两种广泛应用的软件,前者是强大的HTTP服务器,后者是Java ...

    Linux下面配置Apache2 + tomcat7.0 + ssl 集群安装与配置

    在Linux环境下,构建一个基于Apache2和Tomcat7.0的SSL集群是一项关键任务,它涉及到网站的安全性和负载均衡。Apache作为前端服务器处理HTTPS请求,而Tomcat则作为后端应用服务器处理Java应用。以下是对这个配置过程...

    apache + tomcat + mod_jk集群

    4. **配置mod_jk**:在Apache的配置文件httpd.conf中,添加mod_jk的LoadModule语句,然后创建一个名为workers.properties的文件,定义Tomcat集群的服务器实例。每个实例包括IP地址、端口、工作目录等信息。 5. **...

    Linux_Apache+Tomcat+jk

    为了搭建Tomcat集群,首先需要安装JDK。 1. **下载JDK**:选择JDK 1.6或更高版本。 2. **安装JDK**:安装过程省略。 3. **配置环境变量**:设置JDK_HOME、CLASSPATH和PATH环境变量。 ```bash export JAVA_HOME=/...

    Linux下通过Apache搭建Tomcat集群

    在Linux环境中,通过Apache HTTP服务器(简称Apache)搭建Tomcat集群是一种常见的高可用性和负载均衡配置方式。Apache作为反向代理服务器,可以将用户的请求分发到多个Tomcat实例上,从而实现应用服务的扩展和容错。...

    linux下apache+tomcat实现集群

    以上就是基于Red Hat 5的Linux环境中,Apache与Tomcat集群的基本配置步骤和注意事项。通过这种方式,您可以实现高效、可靠的Web服务环境,以应对高并发访问和确保业务连续性。对于更复杂的需求,如SSL加密、缓存策略...

    apache+tomcat集群均衡负载 简单实现步骤

    总结,实现Apache+Tomcat集群负载均衡的关键在于正确配置Apache的mod_proxy模块,以及确保Tomcat集群的会话一致性。通过这种方式,我们可以有效分摊高并发访问压力,提高系统的稳定性和响应速度。同时,持续监控和...

    Apache+tomcat_集群.doc

    总的来说,Apache+Tomcat集群的配置是一项复杂但至关重要的任务,能够提供强大且可靠的Web服务。正确配置和管理这个集群,可以帮助企业应对高流量和复杂应用的需求,提升用户体验,同时确保系统的稳定性和安全性。

    Nginx+Memcache+Linux+Tomcat集群

    在构建高性能的Web服务环境中,...总结来说,Nginx+Memcache+Linux+Tomcat集群通过合理利用资源,实现了Web服务的高性能、高可用性和可扩展性。这种架构在处理大量并发请求时表现出色,是现代互联网服务的常见选择。

Global site tag (gtag.js) - Google Analytics