一、tomcat
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。
当在一台机器上配置好Apache服务器,可利用它响应HTML页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。Tomcat具有处理HTML页面的功能,但 Tomcat处理静态HTML的能力不如Apache服务器。
实验环境:
linux 6.5
tomcat 1 : server1
tomcat 2 : server2
Tomcat 的安装及配置
tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
cd /usr/local/
ln -s jdk1.7.0_79/ java
ll
cd
vim /etc/profile 编写全局变量
source /etc/profile
/etc/init.d/php-fpm start
nginx 打开nginx
vim test.java 编写一个java测试文件
javac test.java 检测java文件语法是否正确
java test 执行这个文件
tar zxf apache-tomcat-7.0.90.tar.gz -C /usr/local/
cd /usr/local/
ln -s apache-tomcat-7.0.90/ tomcat
cd tomcat/
netstat -antlp 查看服务是否都开启
在浏览器中访问8080端口会看到如下界面
cd /usr/local/tomcat/webapps/ROOT/
vim test.jsp
在浏览器测试test.jsp
修改nginx的默认配置文件
cd /usr/local/lnmp/nginx/conf/
vim nginx.conf
添加 两台 tomcat 机
##jsp结尾的进行负载均衡请求
nginx -s reload ##重新加载
二、tomcat负载均衡
在第二台tomcat 机中(做与第一台tomcat 机相同的操作)
tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
tar zxf apache-tomcat-7.0.90.tar.gz -C /usr/local/
vim /etc/profile
source /etc/profile
cd /usr/local/
ln -s jdk1.7.0_79/ java
ln -s apache-tomcat-7.0.90/ tomcat
java
javac
cd /usr/local/tomcat/
bin/startup.sh 启动tomcat
cd /usr/local/tomcat/webapps/ROOT/
vim test.jsp
The time is:<%=new java.util.Date()%> server2
cd /usr/local/tomcat/logs/
cat catalina.out ##查看日志
在浏览器中访问,检测是否会产生轮询
产生轮询,则配置成功
tomcat 1中
cd /usr/local/tomcat/webapps/ROOT/
vim test.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>
scp test.jsp server2:/usr/local/tomcat/webapps/ROOT
编辑nginx 配置文件
cd /usr/local/lnmp/nginx/conf
vim nginx.conf
http {
upstream tomcat
{
sticky; ###将sticky写入nginx配置文件
server 172.25.254.100:8080;
server 172.25.254.101:8080;
}
include mime.types;
default_type application/octet-stream;
nginx -s reload ###重新加载
实现session共享
打开tomcat 1的 me,cached 服务
在tomcat 2中
yum install memcached -y
/etc/init.d/memcached start
cd /usr/local/tomcat/conf/
vim context.xml
加到文件的最后面,但要在最后一个括号内
scp context.xml server1:/usr/local/tomcat/conf/
在tomcat1(server1)中
cd /usr/local/tomcat/conf/
vim context.xml 只需改
failovverNodes='n1'
注意:将jar包所有文件放入/usr/local/tomcat/lib中,记住要删除memcache的6版本
yum install telnet -y (在server1和server2中分别安装)
telnet localhost 11211 ###查看session中存的数据
在server1中做和server2相同的配置,即上面的步骤
测试结果如图:
当server1的memcache挂掉后,之前上传的结果依旧在 节点不会发生改变,只有当一个节点坏掉后,节点才会发生变化