Linux apache tomcat 集群搭建
来源:互联网 发布:js将字符串转为数组 编辑:程序博客网 时间:2024/05/17 00:13
Apache tomcat 集群搭建
准备:
OS:rhel-server-5.4-x86_64-dvd.iso
JDK: jdk-7u71-linux-x64.tar.gz
Apache:httpd-2.4.10.tar.gz
Tomcat:apache-tomcat-7.0.57.tar.gz
Mod_jk:tomcat-connectors-1.2.37-src.tar.gz
Apache 辅助包:apr-1.5.1.tar.gz,apr-util-1.5.3.tar.gz,pcre-8.32.tar.gz
JDK安装:
cp /software/jdk-7u71-linux-x64.tar.gz /usr/local/Java
cd /usr/local/Java。
tar -zxvf jdk-7u45-linux-i586.tar.gz
vi /etc/profile 添加如下配置
export JAVA_HOME=/usr/local/Java/jdk1.7.0_71
exportCLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
source /etc/profile ,使文件立即生效。
java –version 查看jdk版本
安装apr
cp apr-1.5.1.tar.gz /home/hadoop
cd /home/hadoop
tar -zxvf apr-1.5.0.tar.gz
cd apr-1.5.1
./configure --prefix=/home/hadoop /apr
make
make install
安装apr-util
cp
cd /home/hadoop
tar -zxvf apr-util-1.5.3.tar.gz
cd apr-util-1.5.3
./configure --prefix=/home/hadoop/apr-util --with-apr=/home/hadoop /apr
make
make install
安装pcre
cp pcre-8.32.tar.gz /home/hadoop
cd /home/hadoop
tar -zxvf pcre-8.32.tar.gz
cd pcre-8.32
./configure --prefix=/home/hadoop/pcre
make
make install
Aapache安装
rpm -qa|grep httpd 查看是否已经安装apache
rpm -e httpd 删除存在的Apache,不存在不用删
cp httpd-2.4.7.tar.gz /home/hadoop /home/hadoop是我创建目录,用户可以自定义
cd httpd-2.4.10
./configure --prefix=/home/hadoop/apache--with-apr=/home/hadoop/apr/ --with-apr-util=/home/hadoop /apr-util/ --with-pcre=/home/hadoop /pcre
make
make install
------------至此安装完成,修改相关配置----------
cd /home/hadoop/apache/conf/
vi httpd.conf
修改一下内容:
ServerName 192.168.0.2 你本机的ip
DirectoryIndex index.html index.jsp DirectoryIndex中添加 index.jsp
Includeconf/extra/httpd-mpm.conf
Includeconf/extra/httpd-default.conf
<Directory"/home/hadoop/apache">
Require allgranted
Orderallow,deny
Allow fromall
</Directory>
保存退出
./home/hadoop/apache/bin/apachectl start
访问http://127.0.0.1 。页面出现“It's Works!”字样即为成功
(1)启动apache服务:# /home/hadoop/ pache/bin/apachectl start
(2)关闭apache服务:# /home/hadoop/apache/bin/apachectl stop
(3)重启apache服务:# /home/hadoop/apache/bin/apachectl restart
Tomcat安装
cp apache-tomcat-7.0.47.tar.gz /home/hadoop
cd /home/hadoop
tar -zxvf apache-tomcat-7.0.47.tar.gz
mv apache-tomcat-7.0.57 tomcat
vi /etc/profile
export TOMCAT_HOME=/home/hadoop/tomcat
export CATALINA_HOME=/home/hadoop/tomcat
source /etc/profile
启动tomcat
./home/hadoop/tomcat/bin/startup.sh
访问http://127.0.0.1:8080,可以看到tomcat的启动欢迎页面,证明tomcat配置正确
(1)启动tomcat服务:
# /home/hadoopl/tomcat/bin/startup.sh
# /home/hadoopl/tomcat/bin/catalina.sh start
(2)关闭tomcat服务:
# /home/hadoopl/tomcat/bin/shutdown.sh
#/home/hadoopl/tomcat/bin/catalina.sh stop
mod_jk安装
cp tomcat-connectors-1.2.37-src.tar.gz /home/hadoop
cd /home/hadoop
tar -zxvf tomcat-connectors-1.2.37-src.tar.gz
编译安装mod_jk。
cd /tomcat-connectors-1. 2.37-src/native
chmod 755 buildconf.sh
./buildconf.sh
./configure --with-apxs=/home/hadoop/apache/bin/apxs
make
make install
/tomcat-connectors-1.2.37/apache-2.0下的mod_jk.so文件拷贝到apache安装目录下的modules文件夹下面。
cp ./apache-2.0/mod_jk.so/usr/local/apache/modules/
配置负载均衡
1. 修改tomcat server.xml
修改< Connector>节点值,是关于使用ajp连接apache和tomcat时的配置。修改成如下形式:<Connectorport="8009" protocolhandlerclassname="org.apache.jk.server.jkcoyotehandler"protocol="AJP/1.3" redirectPort="8443"/>
注意:如果一台机器上同时运行多个tomcat,一定要将每个tomcat对应的Connector标签的port端口设为不同的值
添加tomcat实例名
<Engine name=”Catalina” defaultHost=”localhost” jvmRoute=”tomcat1”>
在<Engine>元素下添加以下内容
<Clusterclass Name="org.apache.catalina.ha.tcp.SimpleTcpCluster"> <Manager className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="224.0.0.1 " #广播地址,同一组tomcat集群一样
port="45564" #同一组tomcat集群一样
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="192.162.0.2 " #本机ip
port="4001" #tomcat默认可以检测到4000~4100之间的端口
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender> <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<InterceptorclassName="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel> <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"filter=""/> <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListenerclassName="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
2. 修改待发布项目的web.xml
在每个待发布项目的web.xml末尾的</web-app>标签里添加<distributable/>,确保session能够复制。
3. 修改 httpd.conf
在apache的conf下的httpd.conf文件尾部追加以下内容:
#加载mod_jk Module
LoadModulejk_module modules/mod_jk.so
<Ifmodulemod_jk.c>
#指定workers.properties文件路径
JkWorkersFile /home/hadoop/apache/conf/workers.properties
#指定jk logs文件存放位置
JkLogFile /home/hadoop/apache/logs/mod_jk.log
#Setthe jk log level [debug/error/info]
JkLogLevelinfo
#Selectthe log format
JkLogStampFormat"[%a %b %d%H:%M:%S %Y]"
#JkOptionsindicate to send SSL KEYSIZE,
JkOptions+ForwardKeySize +ForwardURICompat-ForwardDirectories
#JkRequestLogFormatset the requestformat
JkRequestLogFormat"%w %V %T %q %U%R"
#JkShmFileto put logs
JkShmFilehome /hadoop/apache/logs/mod_jk.shm
</IfModule>
#指定哪些请求交给tomcat处理,哪些请求交给apache处理
#注意:" loadbalancer "为在workers.propertise里指定的负载分配控制器
JkMount/*.jsp loadbalancer #所有的jsp都交给tomcat处理
4. 创建workers.properties
httpd.conf的最后添加的配置中workers.properties文件是不存在的,需要我们自己在apache/conf路径下创建。workers.properties文件用于对负载均衡的负载器worker
(即tomcat)进行具体的登记,此处的2个tomcat就作为2个worker被登记在这个文件中。
workers.properties具体配置如下:
#workers.properties
#in unix, weuse forward slashes:
ps=/
#workers 列表
worker.list=tomcat1,tomcat2,loadbalancer, status
#--------------------------------------------------------------------
#第一个tomcat
#--------------------------------------------------------------------
worker.tomcat1.port=8009#对应tomcat的server.xml中配置的ajp13端口号
worker.tomcat1.host=127.0.0.1#tomcat1的主机地址,如不为本机,请填写IP地址
worker.tomcat1.type=ajp13#定向包协议
worker.tomcat1.lbfactor=1#server的负载分配权重,值越高,分得的请求越多
#以下为非必要配置,这部分配置tomcat2的配置同tomcat1
#worker.tomcat1.cachesize=1000#配置tomcat的jk连接缓存大小 (非必要)
#worker.tomcat1.cachesize_timeout=600# (非必要)
#worker.tomcat1.reclycle_timeout=300# (非必要)
#worker.tomcat1.socket_keepalive=1#防止防火墙切断未激活的网络连接(非必要)
#worker.tomcat1.socket_timeout=300#(非必要)
#worker.tomcat1.local_worker=1# (非必要)
#worker.tomcat1.retries=3# (非必要)
#----------------------------------------------------------------------
#第二个tomcat
#----------------------------------------------------------------------
worker.tomcat2.port=8009
worker.tomcat2.host=172.**.***.202#tomcat2的主机IP地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
#----------------------------------------------------------------------
#load balancerworker -负载均衡控制器
#---------------------------------------------------------------------
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=tomcat1,tomcat2#指定分担请求的tomcat
worker.loadbalancer.sticky_session=1#设置为粘性session
worker.loadbalancer.sticky_session_force=0#设置当多次请求未响应,请求将转发
worker.status.type=status
#end workers.properties
5. 设置apache对项目的访问路径
修改/apache/conf/目录下的httpd.conf文件中的DocumentRoot和Directory值,将文件访问路径定位到tomcat的webapps文件夹,即待发布项目的存放位置,修改结果如下:
DocumentRoot"/home/hadoop/tomcat/webapps"
<Directory"/home/hadoop/tomcat/webapps">
Requireall granted
Orderallow,deny
Allowfrom all
</Directory>
如此对apache的修改完成,加之tomcat设置了默认访问项目,此时就可以实现直接通过apache所在主机的IP地址来访问项目。(实际配置中,是否实现IP地址直接访问以实际需求为准)
负载均衡集群Session测试
1. 新建一个Java Web工程Test,在工程下新建index.jsp,文件内容如下:
<%@ pageimport="java.util.*" %>
<html>
<head>
<title>Test</title>
</head>
<body bgcolor="red">
<%
out.print("session Id:"+session.getId());
%>
<formaction="index.jsp"method="post">
key<inputtype="text" name="key"/>
<br />
value<input type="text"name="value" />
<br />
<inputtype="submit"value="Submit" />
<br />
</form>
<%
String key=request.getParameter("key");
if(key!=null&&key.isEmpty()==false)
{
Stringvalue =request.getParameter("value");
session.setAttribute(key,value);
Enumeration e =session.getAttributeNames();
while(e.hasMoreElements())
{
String sKey = (String)e.nextElement();
String sValue = (String)session.getAttribute(sKey);
out.print(sKey+ " ="+sValue+"<br>");
}
}
%>
</body>
</html>
2. session粘性测试
启动同组tomcat以及apache。浏览器访问apache所在的主机IP地址:http://192.168.0.2/。从页面显示的session Id可以看出请求访问的是tomcat1。发现多次刷新或submit后,请求访问的一直是tomcat1,并且session Id一直保持不变,session中的数据也能够保持,说明session粘性良好。
3. session复制测试
4. 启动同组tomcat以及apache。浏览器访问apache所在的主机IP地址:http://172.18.145.201/,从页面显示的session Id可以看出请求访问的是tomcat1。此时停掉tomcat1,再次提交session数据,或刷新页面,结果如图二所示,发现请求被转发给tomcat2,页面访问正常。页面颜色改变,但Session Id保持不变,session数据也全部传递给tomcat2,表明session复制良好。
设置Apache,tomcat开机启动
vi /etc/rc.d/rc.local
/home/tomcat/bin/catalina.shstart
/home/hadoop /apache/bin/apachectlstart
- linux搭建apache+tomcat 集群
- Linux apache tomcat 集群搭建
- linux搭建apache和tomcat集群
- Linux下apache tomcat集群搭建
- Linux下通过Apache搭建Tomcat集群
- apache+Tomcat 集群搭建
- tomcat+apache+linux集群
- Apache与Tomcat搭建集群
- apache和tomcat搭建集群
- Tomcat+apache+memcached集群搭建
- Linux平台上搭建apache+tomcat负载均衡集群
- Linux平台上搭建apache+tomcat负载均衡集群
- Linux下Apache+tomcat搭建负载均衡服务器集群
- Linux平台上搭建apache+tomcat负载均衡集群
- Linux平台上搭建apache+tomcat负载均衡集群
- Linux平台上搭建apache+tomcat负载均衡集群
- linux系统下搭建Apache+JK+Tomcat集群
- linux tomcat集群搭建
- sharepoint 2013 开启 Usage and Health Data Collection
- 归一化
- WeixinJSBridge
- Ubuntu 安装Oracle 11g R2
- 如何一个android工程作为另外一个android工程的lib
- Linux apache tomcat 集群搭建
- 的v私人哥啊任何事
- android控件开发之Radio(单选按钮)和CheckBox(多选按钮)开发
- struts2学习笔记
- 浅谈软件开发工具的成本核算问题
- SpringSide3中多数据源配置
- Java虚拟机学习(一)
- 系统软件项目成本构成及估算方法
- android:clipChildren妙用