Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
tomcat的安装
首先我们需要在服务器端配置好JDK的环境
将下载的jdk压缩包解压,并且进入压缩目录
tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/ #解压压缩包
cd /usr/local/
ln -s jdk1.7.0_79/ java #建立软链接
然后修改环境变量
vim /etc/profile
修改成如下
80 export JAVA_HOME=/usr/local/java
81 export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
82 export PATH=$PATH:$JAVA_HOME/bin
然后使其立即生效
source /etc/profile
可以简单的编写一个java程序进行测试,如果编译成功则说明配置完成
vim test.java
javac test.java
java test #测试
配置好环境后即可开始安装tomcat
基本步骤如下
tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/ #解压压缩
cd /usr/local/tomcat/
ln -s apache-tomcat-7.0.37/ tomcat #建立软链接
cd tomcat/bin/
./startup.sh #开启tomcat服务
然后我们可以编写一个测试的jsp文件
cd /usr/local/tomcat/webapps/ROOT #进入tomcat的发布目录
vim test.jsp #编写测试的jsp文件
测试 IP:8080 /test.jsp
nginx与tomcat的结合
可以使用nginx的负载均衡来访问jsp编写的tomcat页面
首先我们按照以上步骤配置好两台tomcat的主机
在发布目录下编写jsp文件如下
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
out.println("<br> ID " + session.getId()+"<br>");
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}
out.print("<b>Session list</b>");
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">
name:<input type=text size=20 name="dataName">
<br>
key:<input type=text size=20 name="dataValue">
<br>
<input type=submit>
</form>
</body>
</html>
然后修改nginx的配置文件nginx.conf
如下
upstream westos{
20 ip_hash;
21 server 172.25.40.2:8080;
22 server 172.25.40.3:8080;
23 }
78 location ~ \.jsp$ {
79 proxy_pass http://westos;
80 }
修改的意思为当读取jsp文件的时候,将自动跳转到这两个主机上,然后使用upstream模块对其进行负载均衡
然后重新读取配置文件
nginx -s reload
在两个tomcat主机上开启tomcat服务
cd /usr/local/tomcat/bin
./startup.sh
测试 IP号:8080 /test.jsp
memcached与tomcat的节点构建
两个服务器节点时,为了使服务器切换时session信息的得以保留,我们可以使用memcached和tomcat构建一下结构
基本的配置过程如下
两个节点按照之前的方法配置好tomcat
然后分别安装memcached
yum install memcached -y
/etc/init.d/memcahed start #开启服务的11211端口
然后修改tomcat的配置文件如下
vim /usr/local/tomcat/conf/context.xml
<Context>
......
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.0.91:11211,n2:192.168.0.92:11211" #修改为两个节点的IP号
failoverNodes="n1"
#在 node2 上此项设置为“n2” #当访问失败时切换到另一主机上
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
</Context>
启动tomcat
usr/local/tomcat/bin/startup.sh
测试方法
tail -f logs/catalina.out #测试服务的开启情况
可以在之前nginx配置好负载均衡的情况下这样测试
在2主机的页面上输入一些信息
然后使用telnet 测试3主机的11211端口
查看session信息
在2上关闭tomcat服务 跳转到3主机上
然后再输入一些信息
继续使用telnet测试3主机的11211端口
如果可以看到session信息说明搭建成功