tomcat做的事情:
开启监听端口监听用户的请求,解析用户发来的http请求,然后访问到你指定
的应用系统,然后你返回的页面经过tomcat返回给用户
【server1,server2】
1)安装jdk和tomcat
tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
2)做好软连接便于访问
cd /usr/local
ln -s jdk1.7.0_79/ java
ln -s apache-tomcat-7.0.37/ tomcat
3)配置环境变量
vim /etc/profile
##添加到文件末尾
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile ##使配置文件生效
##查看是否添加成功
echo $PATH
echo $CLASSPATH
echo $JAVA_HOME
which java
which javac
vim test.java
public class test
{
public static void main(String[] args)
{
System.out.println("Hello java");
}
}
javac test.java
java test
cd /usr/local/tomcat
bin/startup.sh
编写页面测试:
cd /usr/local/tomcat/webapps/ROOT/
vim test.jsp
【server1】
server1-The time is: <%=new java.util.Date() %>
【server2】
server2-The time is: <%=new java.util.Date() %>
测试:
网页访问:172.25.78.1:8080/test.jsp
网页访问:172.25.78.2:8080/test.jsp
vim test.jsp
server1:
server2:
【server1】
vim /usr/local/lnmp/nginx/conf/nginx.conf
2:user nginx nginx;
20: upstream tomcat {
21: server 172.25.78.1:8080;
22: server 172.25.78.2:8080;
23: }
48: location / {
49: root /usr/local/tomcat/webapps/ROOT;
50: index index.html index.htm;
51: }
52: location ~ \.jsp$ {
53: proxy_pass http://tomcat;
54: }
nginx -t
nginx ##启动nginx
http://172.25.78.1:8080
4)增加测试页面:
【server1,server2】
vim /usr/local/apache-tomcat-7.0.37/webapps/ROOT/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>
测试:
http://172.25.78.1:8080/test.jsp ##多次点击访问,server1和server2会切换的访问
vim /usr/local/apache-tomcat-7.0.37/webapps/ROOT/test.jsp
【server1】
5)在nginx配置文件中增加tomcat模块,
为了实现session共享,需要支持sticky(粘滞)模块,
nginx-1.14不支持sticky,
所以使用nginx-1.10版本,重新编译nginx
###注意:将/usr/local/lnmp/nginx 目录全部删除 再次编译
cd /usr/local/lnmp/nginx/ ----> ls
rm -fr *
nginx -s stop ##将之前的nginx 停止
tar zxf nginx-sticky-module-ng.tar.gz -C /usr/local/
tar zxf nginx-1.10.1.tar.gz
cd nginx-1.10.1
##编译:
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --add-module=/usr/local/nginx-sticky-module-ng
make && make install
ln -s /usr/local/lnmp/nginx/sbin/nginx /sbin/
vim /usr/local/lnmp/nginx/conf/nginx.conf
1: user nginx nginx;
20:添加
upstream tomcat {
sticky;
server 172.25.0.1:8080;
server 172.25.0.2:8080;
}
39:gzip on; #开启gzip
将48--51注释
52:
location / {
root /usr/local/tomcat/webapps/ROOT;
index index.html index.htm;
}
location ~ \.jsp$ {
proxy_pass http://tomcat;
}
nginx
多次刷新页面,访问的ID号不会变,实现了sticky
vim /usr/local/lnmp/nginx/conf/nginx.conf
接下来实现session共享:
【server1,server2 都做 1) 和 2)】
1) 将 lnmp/jar/ 下的所有目录拷贝到 /usr/local/tomcat/lib/ 目录下
cp lnmp/jar/* /usr/local/tomcat/lib/
cd /usr/local/tomcat/lib/ --- > ls
rm -fr memcached-session-manager-tc6-1.6.3.jar ##删除
2)加入session共享配置,context.xml 该文件的作用是配置各种数据库的连接池
vim /usr/local/tomcat/conf/context.xml
##一定要添加在 41:</Context> 前面
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:172.25.78.1:11211,n2:172.25.78.2:11211"
failoverNodes="n1" ##【server1--> n1】【server2--> n2】
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
XML概念
xml常用于数据存储和传输,文件后缀为 .xml
它是可扩展标记语言(Extensible Markup Language,简称XML),是一种标记语言
标记,指计算机所能理解的信息符号;
通过此种标记,计算机之间可以处理包含各种信息的文章等
1 标记,指计算机所能理解的信息符号;
2 通过此种标记,计算机之间可以处理包含各种信息的文章等。
XML设计用来传送及携带数据信息,不用来表现或展示数据,所以XML用途的焦点是它说明数据是什么,以及携带数据信息。而HTML语言则用来表现数据
server1:
server2:
【server1,server2 都做】:
3)
cd /usr/local/tomcat/lib
yum install memcached -y
systemctl start memcached
保存并启动tomcat
cd /usr/local/tomcat/
bin/startup.sh
网页:172.25.78.1/test.jsp
4)再次测试,如果n1挂了,session不会被重置
###注意测试的时候:想更改n1 n2 的时候 可以手动停掉server1 server2上的tomcat和memcached
##停止一端的memcache
yum install telnet -y
telnet localhost 11211
get + ID