lnmp架构下:完成客户的动态访问请求—tomcat服务器之间负载均衡—sticky粘滞—实现session共享和会话保持

一、Tomcat简介
Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。
二、JDK简介
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。
三、安装
注意当前使用的 【apache-tomcat-7.0.99.tar.gz】版本过高在测试共享数据时会失败
更换为低版本apache-tomcat-7.0.37.tar.gz jar
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
四、配置Tomcat
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用户是直接去访问nginx,接下来配置一下nginx
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、访问动态页面需要配置一下Tomcat的默认发布页面
在这里插入图片描述
在这里插入图片描述
在重写写一个Java文件测试一下(注册用户的动态页面)

<%@ 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>

在这里插入图片描述
当前已经实现了客户端访问nginx服务器的时候,通过jsp动态获取tomcat服务器上面的资源(动态请求)
六、nginx+tomcat动态实现的tomcat服务器之间负载均衡
实验环境

主机信息	                         主机功能
虚拟机server1(172.25.254.1)	nginx反向代理+tomcat1服务器
虚拟机server2(172.25.254.2)	tomcat2服务器

首先从server1给server2上传tomcat和jdk目录
在这里插入图片描述
在这里插入图片描述

[root@server2 local]# ln -s apache-tomcat-7.0.99 tomcat做软连接
[root@server2 local]# ln -s jdk1.7.0_79 java
[root@server2 ~]# vim /etc/profile  设定全局边框
[root@server2 local]# source /etc/profile   立即生效
[root@server2 local]# ll
total 0
drwxr-xr-x  9 root root 220 May 16 13:18 apache-tomcat-7.0.99
drwxr-xr-x. 2 root root   6 Dec 15  2017 bin
drwxr-xr-x. 2 root root   6 Dec 15  2017 etc
drwxr-xr-x. 2 root root   6 Dec 15  2017 games
drwxr-xr-x. 2 root root   6 Dec 15  2017 include
lrwxrwxrwx  1 root root  11 May 16 13:23 java -> jdk1.7.0_79
drwxr-xr-x  8 root root 233 May 16 13:21 jdk1.7.0_79
drwxr-xr-x. 2 root root   6 Dec 15  2017 lib
drwxr-xr-x. 2 root root   6 Dec 15  2017 lib64
drwxr-xr-x. 2 root root   6 Dec 15  2017 libexec
drwxr-xr-x. 2 root root   6 Dec 15  2017 sbin
drwxr-xr-x. 5 root root  49 May  8 09:01 share
drwxr-xr-x. 2 root root   6 Dec 15  2017 src
lrwxrwxrwx  1 root root  20 May 16 13:22 tomcat -> apache-tomcat-7.0.99

[root@server2 local]# java -version  
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

在server1上配置nginx
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在server2上开启tomcat

[root@server2 bin]# ./startup.sh  开启
Using CATALINA_BASE:   /usr/local/apache-tomcat-7.0.99
Using CATALINA_HOME:   /usr/local/apache-tomcat-7.0.99
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-7.0.99/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/apache-tomcat-7.0.99/bin/bootstrap.jar:/usr/local/apache-tomcat-7.0.99/bin/tomcat-juli.jar
Tomcat started.
[root@server2 bin]# netstat -tnpl   查看端口
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      7504/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      7689/master         
tcp6       0      0 :::8009                 :::*                    LISTEN      8563/java           
tcp6       0      0 :::3306                 :::*                    LISTEN      7556/mysqld         
tcp6       0      0 :::8080                 :::*                    LISTEN      8563/java           
tcp6       0      0 :::22                   :::*                    LISTEN      7504/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      7689/master         
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      8563/java           

客户端测试访问并建立用户

在这里插入图片描述
在这里插入图片描述
三次实验结果表明已经实现tomcat服务之间的负载均衡,但是建立的用户并没有保存
sticky粘滞
编译sticky模块
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
访问结果来看:在建立用户是不会出现轮询跳动,稳定保持在同一个主机上(172.25.254.1)但当后台服务器要是宕机一台,那么会出现用户建立的信息清空,为了防止这种事情发生,需要去设置session共享,不管那一台服务器挂掉,数据都会自动传输到另外一台正常的服务器上。
什么是session?
Session 是另一种记录客户状态的机制,不同的是 Cookie 保存在客户端浏览器中,而 Session 保存在服务器上
客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是 Session
客户端浏览器再次访问时只需要从该 Session 中查找该客户的状态就可以了
session共享原理及实现共享
http协议是无状态的,即你连续访问某个网页100次和访问1次对服务器来说是没有区别对待的,因为它记不住你
接下来首先session共享

在这里插入图片描述
server1、server2相同操作
在这里插入图片描述
在server1上配置

[root@server1 tomcat]# cd conf/
[root@server1 conf]# ls
Catalina  catalina.policy  catalina.properties  context.xml  logging.properties  server.xml  tomcat-users.xml  tomcat-users.xsd  web.xml
[root@server1 conf]# vim context.xml 

在这里插入图片描述

在server2上配置

[root@server2 tomcat]# ls
bin  BUILDING.txt  conf  CONTRIBUTING.md  lib  LICENSE  logs  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@server2 tomcat]# cd conf/
[root@server2 conf]# ls
Catalina  catalina.policy  catalina.properties  context.xml  logging.properties  server.xml  tomcat-users.xml  tomcat-users.xsd  web.xml
[root@server2 conf]# vim context.xml 

在这里插入图片描述
上面的配置中需要打开11211端口即安装memcached服务

[root@server2 conf]# yum install -y memcached  安装
[root@server2 ~]# systemctl start memcached.service   启动服务
[root@server2 ~]# netstat -tnpl | grep memcached  查看端口
tcp        0      0 0.0.0.0:11211           0.0.0.0:*               LISTEN      8824/memcached      
tcp6       0      0 :::11211                :::*                    LISTEN      8824/memcached      

在server1上
在这里插入图片描述

在server2上

在这里插入图片描述
注意当前使用的 【apache-tomcat-7.0.99.tar.gz】版本过高在测试共享数据时会失败
更换为低版本apache-tomcat-7.0.37.tar.gz jar
测试
建立用户当前是在server2上

在这里插入图片描述

[root@server2 bin]# ./shutdown.sh   挂掉server2再创建用户
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值