tomcat企业级Web应用服务器配置与会话保持

实战一:安装tomcat

1、安装JDK

# cd /usr/local/src/

# tar -zxf jdk-8u271-linux-x64.tar.gz

# mv jdk1.8.0_271/ /usr/local/jdk1.8

# vim /etc/profile //设置环境变量,加入以下内容

JAVA_HOME=/usr/local/jdk1.8/

JAVA_BIN=/usr/local/jdk1.8/bin

JRE_HOME=/usr/local/jdk1.8/jre

PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin

CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/

lib/charsets.jar //这是一行

# source /etc/profile //使文件生效

# java -version //检测设置是否正确

如显示下图内容,则说明配置正确:

 tomcat企业级Web应用服务器配置与会话保持

 

 

2、安装Tomcat

# cd /usr/local/src/

# tar -zxf apache-tomcat-8.5.60.tar.gz

# mv apache-tomcat-8.5.60 /usr/local/tomcat

# /usr/local/tomcat/bin/startup.sh //启动Tomccat

# netstat -ntlp |grep java // 查看是否启动成功

# echo "/usr/local/tomcat/bin/startup.sh" >> /etc/rc.d/rc.local

# chmod a+x /etc/rc.d/rc.local   //这两步为设置开机启动,并给文件加执行权限

# setenforce 0 //关闭SELinux服务

# systemctl stop firewalld //关闭防火墙

在浏览器中输入http://192.168.200.20:8080/,就会看到Tomcat的默认页面,如下图所示:

 tomcat企业级Web应用服务器配置与会话保持

 

 

实战二:实现LNMTnginx代理tomcat

一、在nginx设置跳转

1、在主机配置文件中加入代理命令:

# cd /usr/local/nginx/conf/vhost/

# vi default.conf //server段加入以下命令

location / {

        proxy_pass http://192.168.200.30:8080;

        proxy_set_header Host $host;

}

   location ~* \.(jsp|do)$ {

        proxy_pass http://192.168.200.30:8080;

        proxy_set_header Host $host;

}

2、在浏览器中直接访问80端口即可代理8080端口:

 tomcat企业级Web应用服务器配置与会话保持

3、实现集群代理服务:

# vi /usr/local/nginx/conf/vhost/default.conf //在配置文件中加入以下内容

server段里加入

location / {

proxy_pass http://tomcat_srv;

proxy_set_header Host $host;

}

location ~* \.(jsp|do)$ {

proxy_pass http://tomcat_srv;

proxy_set_header Host $host;

}

server段外加入

upstream tomcat_srv {

        server 192.168.200.20:8080 weight=1;

        server 192.168.200.10:8080 weight=2;

}

 

1)创建测试页面:

server1(IP192.168.200.20)上定义一个页面:

# vi /usr/local/tomcat/webapps/test/index.jsp

<%@ page language="java" %>

<%@ page import="java.util.*" %>

<html>

<head>

<title>Test Page</title>

        </head>

        <body>

        <% out.println("hello world");%>

        </body>

</html>

server2(IP192.168.200.10)上定义一个页面:

# vi /usr/local/tomcat/webapps/test/index.jsp

<%@ page language="java" %>

<%@ page import="java.util.*" %>

<html>

<head>

<title>Test Page</title>

        </head>

        <body>

        <% out.println("hello world2");%>

        </body>

</html>

页面测试访问:

 tomcat企业级Web应用服务器配置与会话保持

 

 tomcat企业级Web应用服务器配置与会话保持

会出现轮询情况。

 

实战三:LNMT的会话保持原理基于ip_hash实现

一、实现基于ip_hash实现会话保持

# vi /usr/local/nginx/conf/vhost/default.conf      //只需加入ip_hash即可

 tomcat企业级Web应用服务器配置与会话保持

 

 tomcat企业级Web应用服务器配置与会话保持

现在我们会话保持成功,没有轮询。

 

实战四:基于tomcat会话集群实现LNMT的会话保持

一、节点准备:

机器名称

IP配置

服务角色

备注

Nginx

192.168.200.10

代理服务器

开启代理功能

Tomcat-srv1

192.168.200.20

Web服务

配置集群会话

Tomcat-srv2

192.168.200.30

Web服务

配置集群会话

Nginx节点配置文件:

 tomcat企业级Web应用服务器配置与会话保持

Tomcat-srv1节点配置文件:

 tomcat企业级Web应用服务器配置与会话保持

Tomcat-srv2节点配置文件:

 tomcat企业级Web应用服务器配置与会话保持

 

二、tomcat集群会话的配置

nginx节点:

# cd /usr/local/tomcat/

# vim conf/server.xml //Engine引擎段中,添加以下内容

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">

 

<Manager className="org.apache.catalina.ha.session.DeltaManager"

expireSessionsOnShutdown="false"

notifyListenersOnReplication="true"/>

 

<Channel className="org.apache.catalina.tribes.group.GroupChannel">

<Membership className="org.apache.catalina.tribes.membership.McastService"

address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/>

<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"

address="auto" port="4000" 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"/>

<Interceptor className="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"/>

<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>

</Cluster>

如下图所示:

 tomcat企业级Web应用服务器配置与会话保持

 

 

三、配置注释

四、创建测试页面

Nginx节点下:

# mkdir webapps/test

# cd webapps/test

# mkdir WEB-INF //设置一个web.xml的配置文件

# cp /usr/local/tomcat/conf/web.xml WEB-INF/

# vim WEB-INF/web.xml

</web-app>上加一行<distributable>表示分布式,如下图所示:

 tomcat企业级Web应用服务器配置与会话保持

tomcat-srv1节点和tomcat-srv2节点分别创建测试页面,在tomcat-srv1上是TomcatA;在tomcat-srv2上是TomcatB

<%@ page language="java" %>

<html>

<head><title>TomcatA</title></head>    1

<body>

<h1><font color="blue">TomcatA </h1>

<table align="centre" border="1">

<tr>

<td>Session ID</td>

<% session.setAttribute("abc","abc"); %>

<td><%= session.getId() %></td>

</tr>

<tr>

<td>Created on</td>

<td><%= session.getCreationTime() %></td>

</tr>

</table>

</body>

</html>

五、测试

1、浏览器访问http://192.168.200.10/test/session.jsp,轮询,但是sessionID是一样的,会话保持成功,如下图所示:

 tomcat企业级Web应用服务器配置与会话保持

 

 tomcat企业级Web应用服务器配置与会话保持

 

tomcat企业级Web应用服务器配置与会话保持

上一篇:Js操作select控件


下一篇:JS任务轮询机制