Web服务Tomcat

介绍

二进制安装

jdk安装

[root@tomcat ~]#tar xf jdk-8u291-linux-x64.tar.gz -C /usr/local/

[root@tomcat ~]#cd /usr/local/

[root@tomcat local]#ln -s jdk1.8.0_291/ jdk

tomcat安装

# 下载
[root@tomcat ~]#wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.50/bin/apache-tomcat-8.5.50.tar.gz
# 解压
[root@tomcat ~]#tar -xf apache-tomcat-8.5.50.tar.gz -C /usr/local/
# 创建软连接
[root@tomcat local]#ln -s apache-tomcat-8.5.50/ tomcat

添加jdk变量和tomcat变量至环境变量

[root@tomcat ~]#cat /etc/profile.d/jdk.sh 
export JAVA_HOME=/usr/local/jdk 
export PATH=$PATH:$JAVA_HOME/bin

[root@tomcat ~]#cat /usr/local/tomcat/conf/tomcat.conf 
JAVA_HOME=/usr/local/jdk
集成至系统服务中

编写系统服务文件

[root@tomcat ~]#cat /lib/systemd/system/tomcat.service 
[Unit]
Description=Tomcat
After=syslog.target network.target

[Service]
Type=forking
EnvironmentFile=/usr/local/tomcat/conf/tomcat.conf
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
PrivateTmp=true
User=tomcat
Group=tomcat

[Install]
WantedBy=mulit-user.target
[root@tomcat ~]#useradd -r -s /sbin/nologin tomcat
[root@tomcat ~]#chown -R tomcat.tomcat /usr/local/tomcat/
[root@tomcat ~]#systemctl daemon-reload 
[root@tomcat ~]#systemctl restart tomcat

查看状态

[root@tomcat ~]#systemctl status tomcat 
● tomcat.service - Tomcat
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2022-06-20 14:42:38 CST; 5s ago
  Process: 2120 ExecStop=/usr/local/tomcat/bin/shutdown.sh (code=exited, status=0/SUCCESS)
  Process: 2171 ExecStart=/usr/local/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 2179 (java)
   CGroup: /system.slice/tomcat.service
           └─2179 /usr/local/jdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.Cl...

Jun 20 14:42:38 tomcat systemd[1]: tomcat.service failed.
Jun 20 14:42:38 tomcat systemd[1]: Starting Tomcat...
Jun 20 14:42:38 tomcat systemd[1]: Started Tomcat.

查看进程

[root@tomcat ~]#ps -aux|grep tomcat
tomcat     2179 11.6  6.9 6463092 128564 ?      Sl   14:42   0:02 /usr/local/jdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root       2249  0.0  0.0 112808   968 pts/2    R+   14:43   0:00 grep --color=auto tomcat

tomcat状态页面

配置文件

[root@www ~]# vim /usr/local/tomcat/conf/tomcat-users.xml 
<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">

  <role rolename="manager-gui"/>
  <user username="tomcat" password="tomcat" roles="manager-gui"/>
</tomcat-users>

设置tomcat的gui manager访问权限/白名单

[root@www ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml 

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|10\.0\.0\.\d+" />  # 仿照前面的127.0.0.1
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

重启服务

[root@www ~]#systemctl restart tomcat.service 

在这里插入图片描述

实例

JPress

env:
jpress-v3.2.1.war
CentOS Linux release 7.9.2009 (Core)
mysql_version: 5.7.38

jpress官网:jpress.io

从官网下载jpress

[root@tomcat ~]#cd /usr/local/tomcat/webapps/
# 开启了自动解压和自动部署
[root@tomcat webapps]#cp /root/jpress-v3.2.1.war .
[root@tomcat webapps]#ln -s jpress-v3.2.1 jpress

数据库配置

mysql> create database jpress;
Query OK, 1 row affected (0.00 sec)

mysql> create user jpress@'10.0.0.%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on jpress.* to jpress@'10.0.0.%';
Query OK, 0 rows affected (0.01 sec)

访问web端
在这里插入图片描述
在jpress中配置数据库信息
在这里插入图片描述
在这里插入图片描述
jpress管理后台
在这里插入图片描述

多虚拟主机

主机名

[root@kktb ~]#hostnamectl set-hostname www.kktb.org

server配置

[root@www ~]#tail /usr/local/tomcat/conf/server.xml 

      </Host>
      <Host name="web1.kktb.org" appBase="/data/webapps/" unpackWARs="True" autoDeploy="false">
	  <Value className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="web1_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r%quot; %s %" />	
	  </Host>
      <Host name="web2.kktb.org" appBase="/data/webapps1" unpackWARs="True">
	  </Host>
    </Engine>
  </Service>
</Server>

创建虚拟主机数据目录

[root@tomcat conf]#mkdir -pv /data/webapps/ROOT 
mkdir: created directory ‘/data’
mkdir: created directory ‘/data/webapps’
mkdir: created directory ‘/data/webapps/ROOT’
[root@tomcat conf]#chown -R tomcat.tomcat /data/webapps
[root@tomcat conf]#echo "web1.kktb.org" > /data/webapps/ROOT/index.html

[root@www ~]#mkdir /data/webapps1/ROOT -pv
mkdir: created directory ‘/data/webapps1/ROOT’
[root@www ~]#chown -R tomcat.tomcat /data/webapps1/

重启服务

[root@www ROOT]#systemctl restart tomcat

测试
hosts配置

[root@ka1 ~]#cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.17 www.kktb.org web1.kktb.org web2.kktb.org
[root@ka1 ~]#curl web1.kktb.org:8080/index.htm^C
[root@ka1 ~]#vim /etc/hosts
[root@ka1 ~]#curl web1.kktb.org:8080/index.html
web1.kktb.org
[root@ka1 ~]#curl web2.kktb.org:8080

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>jsp例子</title>
</head>
<body>
后面的内容是服务器端动态生成字符串,最后拼接在一起
<br>
http://web2.kktb.org:8080/
</body>
</html>

nginx实现动静分离代理

动态资源配置至tomcat;静态资源由nginx响应

tomcat配置
部署tomcat的动态资源和静态资源

[root@www ROOT]#echo /usr/local/tomcat/webapps/ROOT/test.html > /usr/local/tomcat/webapps/ROOT/test.html
[root@www ROOT]#echo /usr/local/tomcat/webapps/ROOT/test.jsp > /usr/local/tomcat/webapps/ROOT/test.jsp
[root@www conf.d]#systemctl restart tomcat.service 

nginx配置location匹配规则

[root@www conf.d]#cat /etc/nginx/conf.d/static.conf 
server {
  listen 80;
  server_name www.kktb.org;
  root /usr/share/nginx/html;
  location ~* \.jsp$ {
	proxy_pass http://127.0.0.1:8080;
  }
}

语法检测&启动

[root@www conf.d]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@www conf.d]#systemctl restart nginx 

测试

[root@ka1 conf]#cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.17 www.kktb.org web1.kktb.org web2.kktb.org 
[root@ka1 conf]#curl www.kktb.org/test.html
/usr/share/nginx/html/test.html
[root@ka1 conf]#curl www.kktb.org/test.jsp
/usr/local/tomcat/webapps/ROOT/test.jsp

httpd实现AJP协议反向代理

在这里插入图片描述
配置主机名

[root@localhost ~]# hostnamectl set-hostname www.kktb.org

查看httpd的模块中是否启用了proxy

[root@www conf.d]#httpd -M|grep proxy 
 proxy_module (shared)
 proxy_ajp_module (shared)  #ajp协议
 proxy_balancer_module (shared)
 proxy_connect_module (shared)
 proxy_express_module (shared)
 proxy_fcgi_module (shared)
 proxy_fdpass_module (shared)
 proxy_ftp_module (shared)
 proxy_http_module (shared)  #http代理模块
 proxy_scgi_module (shared)
 proxy_wstunnel_module (shared)

httpd配置

[root@www data]# cat /etc/httpd/conf.d/http-tomcat.conf 
<VirtualHost *:80>
    ServerName        web1.kktb.org
    ProxyRequests     Off
    ProxyVia          On
    ProxyPreserveHost Off
    # ProxyPass         / http://127.0.0.1:8080/
    ProxyPass         / ajp://127.0.0.1:8009/
    # PorxyPassReverse  / http://127.0.0.1:8080/
    
</VirtualHost>

重启服务

[root@www conf.d]# systemctl restart httpd

tomcat开启ajp
tomcat5.5.50版本默认开启ajp协议

[root@www ~]# vim /usr/local/tomcat/conf/server.xml 
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

端口

[root@www ~]# ss -ntl|grep 8009
LISTEN     0      100       [::]:8009                  [::]:*    

tomcat虚拟主机配置

[root@www ~]# tail /usr/local/tomcat/conf/server.xml
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>
	  <Host name="web1.kktb.org" appBase="/data/webapps1/">
	  </Host>
	  <Host name="web2.kktb.org" appBase="/data/webapps2/">
	  </Host>
    </Engine>
  </Service>
</Server>

虚拟主机数据准备

[root@www ~]# mkdir /data/webapps{1,2}/ROOT -pv
mkdir: created directory ‘/data’
mkdir: created directory ‘/data/webapps1’
mkdir: created directory ‘/data/webapps1/ROOT’
mkdir: created directory ‘/data/webapps2’
mkdir: created directory ‘/data/webapps2/ROOT’

[root@www ~]# echo /usr/local/tomcat/webapps/ROOT/test.html > /usr/local/tomcat/webapps/ROOT/test.html
[root@www ~]# echo /data/webapps1/ROOT/test.html > /data/webapps1/ROOT/test.html
[root@www ~]# echo /data/webapps2/ROOT/test.html > /data/webapps2/ROOT/test.html

# 更改权限
[root@www ~]# chown -R tomcat.tomcat /data/webapps1
[root@www ~]# chown -R tomcat.tomcat /data/webapps2

重启服务

[root@www ~]# systemctl restart tomcat.service 

查看状态页
在这里插入图片描述
测试

[root@backup ~]#cat /etc/hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.47 www.kktb.org web1.kktb.org web2.kktb.org

[root@backup ~]#curl web2.kktb.org/test.html
/data/webapps2/ROOT/test.html
[root@backup ~]#curl web1.kktb.org/test.html
/data/webapps1/ROOT/test.html
[root@backup ~]#curl www.kktb.org/test.html
/usr/local/tomcat/webapps/ROOT/test.html

nginx实现tomcat负载均衡调度

在这里插入图片描述
proxy: 10.0.0.7
tomcat1: 10.0.0.17
tomcat2: 10.0.0.47

proxy代理配置

主机名

[root@localhost ~]#hostnamectl set-hostname proxy.kktb.org

nginx配置

[root@proxy ~]#cat /etc/nginx/conf.d/proxy-tomcat.conf 
upstream tomcat-server {
    server t1.kktb.org:8080;
    server t2.kktb.org:8080;
}

server {
    location ~* \.(jsp|do)$ {
        proxy_pass http://tomcat-server;
    }
}

hosts配置

[root@proxy ~]#cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.7 proxy.kkrb.org proxy
10.0.0.17 t1.kktb.org t1
10.0.0.47 t2.kktb.org t2
[root@proxy ~]#systemctl restart nginx && systemctl status nginx 
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-07-02 10:18:35 CST; 6ms ago
tomcat1

配置tomcat地址访问

[root@t1 ROOT]#vim /usr/local/tomcat/conf/server.xml 

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">

    <Engine name="Catalina" defaultHost="t1.kktb.org">

      <Realm className="org.apache.catalina.realm.LockOutRealm">

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="t1.kktb.org"  appBase="/data/webapps/"
            unpackWARs="true" autoDeploy="true">

网站数据

[root@t1 ROOT]#cat /data/webapps/ROOT/index.jsp 
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html lang=en>
<head>
    <meta charset="UTF-8">
    <title>tomcat test</title>
</head>
<body>
    <div>On <%=request.getServerName() %></div>
    <div><%=request.getLocalAddr() + "." + request.getLocalPort() %></div>
    <div>SessionID = <span style="color:blue"><%=session.getId() %></span></div>
    <%=new Date()%>
</body>
</html>

数据目录权限

[root@t1 ~]# chown -R tomcat.tomcat /data/webapps
[root@t1 ROOT]#systemctl restart tomcat.service && systemctl status tomcat
● tomcat.service - Tomcat
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-07-02 10:14:10 CST; 5ms ago
tomcat2

配置tomcat地址访问

[root@t2 ~]# vim /usr/local/tomcat/conf/server.xml 
    <Engine name="Catalina" defaultHost="t2.kktb.org">

      <Realm className="org.apache.catalina.realm.LockOutRealm">

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="t2.kktb.org"  appBase="/data/webapps"
            unpackWARs="true" autoDeploy="true">
[root@t2 ~]# systemctl restart tomcat.service && systemctl status tomcat
● tomcat.service - Tomcat
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-07-02 10:14:03 CST; 3ms ago

网站数据

[root@t2 ~]# cat /data/webapps/ROOT/index.jsp 
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html lang=en>
<head>
    <meta charset="UTF-8">
    <title>tomcat test</title>
</head>
<body>
    <div>On <%=request.getServerName() %></div>
    <div><%=request.getLocalAddr() + "." + request.getLocalPort() %></div>
    <div>SessionID = <span style="color:blue"><%=session.getId() %></span></div>
    <%=new Date()%>
</body>
</html>

数据目录权限

[root@t2 ~]# chown -R tomcat.tomcat /data/webapps
[root@t2 ~]# systemctl restart tomcat.service && systemctl status tomcat
● tomcat.service - Tomcat
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-07-02 10:14:03 CST; 3ms ago
测试

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

tomcat session集群

后续补上

session共享服务器

在这里插入图片描述

t1
[root@t1 tomcat]#cat /usr/local/tomcat/conf/context.xml

  <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    memcachedNodes="n1:10.0.0.37:11211,n2:10.0.0.57:11211"
    failoverNodes="n1"
    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
  />
[root@t1 tomcat]#vim /usr/local/tomcat/conf/server.xml

    <Engine name="Catalina" defaultHost="t1.kktb.org" jvmRoute="Tomcat1">
      <Host name="t1.kktb.org"  appBase="/data/webapps/"
            unpackWARs="true" autoDeploy="true">

上传包

[root@t1 ~]#ll
total 1276
-rw-r--r-- 1 root root  53259 Jul  2 14:12 asm-5.2.jar
-rw-r--r-- 1 root root 285211 Jul  2 14:12 kryo-3.0.3.jar
-rw-r--r-- 1 root root 126366 Jul  2 14:12 kryo-serializers-0.45.jar
-rw-r--r-- 1 root root 167294 Jul  2 14:12 memcached-session-manager-2.3.2.jar
-rw-r--r-- 1 root root  10826 Jul  2 14:12 memcached-session-manager-tc8-2.3.2.jar
-rw-r--r-- 1 root root   5923 Jul  2 14:12 minlog-1.3.1.jar
-rw-r--r-- 1 root root  38372 Jul  2 14:12 msm-kryo-serializer-2.3.2.jar
-rw-r--r-- 1 root root  55684 Jul  2 14:12 objenesis-2.6.jar
-rw-r--r-- 1 root root  72265 Jul  2 14:12 reflectasm-1.11.9.jar
-rw-r--r-- 1 root root 473774 Jul  2 14:12 spymemcached-2.12.3.jar

启动

[root@t1 ~]#systemctl restart tomcat.service 
t2

tomcat配置
上传包

[root@t2 ~]# ls /usr/local/tomcat/lib/
annotations-api.jar       catalina-tribes.jar  jsp-api.jar                              msm-kryo-serializer-2.3.2.jar  tomcat-coyote.jar   tomcat-i18n-ko.jar     tomcat-util-scan.jar
asm-5.2.jar               ecj-4.6.3.jar        kryo-3.0.3.jar                           objenesis-2.6.jar              tomcat-dbcp.jar     tomcat-i18n-ru.jar     tomcat-websocket.jar
catalina-ant.jar          el-api.jar           kryo-serializers-0.45.jar                reflectasm-1.11.9.jar          tomcat-i18n-de.jar  tomcat-i18n-zh-CN.jar  websocket-api.jar
catalina-ha.jar           jasper-el.jar        memcached-session-manager-2.3.2.jar      servlet-api.jar                tomcat-i18n-es.jar  tomcat-jdbc.jar
catalina.jar              jasper.jar           memcached-session-manager-tc8-2.3.2.jar  spymemcached-2.12.3.jar        tomcat-i18n-fr.jar  tomcat-jni.jar
catalina-storeconfig.jar  jaspic-api.jar       minlog-1.3.1.jar                         tomcat-api.jar                 tomcat-i18n-ja.jar  tomcat-util.jar
[root@t2 ~]# vim /usr/local/tomcat/conf/server.xml 

   <Engine name="Catalina" defaultHost="t2.kktb.org" jvmRoute="Tomcat2">
      <Host name="t2.kktb.org"  appBase="/data/webapps"
            unpackWARs="true" autoDeploy="true">
[root@t2 ~]# vim /usr/local/tomcat/conf/context.xml 

    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    memcachedNodes="n1:10.0.0.37:11211,n2:10.0.0.57:11211"
    failoverNodes="n2"
    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
    transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    />

启动日志

02-Jul-2022 13:22:01.286 INFO [t2.kktb.org-startStop-1] de.javakaffee.web.msm.serializer.kryo.KryoTranscoder.<init> Starting with initialBufferSize 102400, maxBufferSize 2048000 and defaultSerializerFactory de.javakaffee.web.msm.serializer.kryo.DefaultFieldSerializerFactory
02-Jul-2022 13:22:01.286 INFO [t2.kktb.org-startStop-1] de.javakaffee.web.msm.MemcachedSessionService.startInternal --------
-  finished initialization:
- sticky: true
- operation timeout: 1000
- node ids: [n1]
- failover node ids: [n2]
- storage key prefix: null
- locking mode: null (expiration: 5s)
--------
02-Jul-2022 13:22:01.287 INFO [t2.kktb.org-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/data/webapps/ROOT] has finished in [71] ms
02-Jul-2022 13:22:01.288 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
02-Jul-2022 13:22:01.295 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
02-Jul-2022 13:22:01.300 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 472 ms
02-Jul-2022 13:34:29.247 INFO [main] org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance.
02-Jul-2022 13:34:29.248 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
02-Jul-2022 13:34:29.266 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"]
02-Jul-2022 13:34:29.280 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
m1

时间

[root@localhost ~]# timedatectl set-timezone Asia/Shanghai
[root@localhost ~]# chronyc sources -v
210 Number of sources = 4

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^- time.cloudflare.com           3   6   377    29  +1666us[+1666us] +/-  103ms
^- pingless.com                  2   6   377    29    -21ms[  -21ms] +/-  131ms
^- ntp1.flashdance.cx            2   6   277    30   +828us[ +828us] +/-  159ms
^* 111.230.189.174               2   6   357    31  -1857us[-2419us] +/-   15ms

memcache

[root@localhost ~]# yum install memcached -y
[root@localhost ~]# yum install libmemcached -y
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl start memcached
[root@localhost ~]# ss -ntl
State       Recv-Q Send-Q                                               Local Address:Port                                                              Peer Address:Port              
LISTEN      0      128                                                              *:22                                                                           *:*                  
LISTEN      0      100                                                      127.0.0.1:25                                                                           *:*                  
LISTEN      0      128                                                              *:11211                                                                        *:*                  
LISTEN      0      128                                                           [::]:22                                                                        [::]:*                  
LISTEN      0      100                                                          [::1]:25                                                                        [::]:*                  
LISTEN      0      128                                                           [::]:11211       

测试memcache

[root@localhost ~]# memping --server=127.0.0.1
[root@localhost ~]# echo $?
0
m2

同m1配置相同

测试

在这里插入图片描述
访问17 tomcat1时候session存储在第二个mem

[root@proxy ~]#./showmemcached.py 
------------------------------
(b'10.0.0.37:11211 (1)', {})
(b'10.0.0.57:11211 (1)', {b'21C1C5DCE29818A100AB5FAD0246BA14-n2.Tomcat1': b'[97 b; 1656741336 s]'})

在这里插入图片描述
访问47 tomcat2的时候session存储在第一个mem

[root@proxy ~]#./showmemcached.py 
------------------------------
(b'10.0.0.37:11211 (1)', {b'21C1C5DCE29818A100AB5FAD0246BA14-n1.Tomcat2': b'[97 b; 1656741120 s]'})
(b'10.0.0.57:11211 (1)', {b'21C1C5DCE29818A100AB5FAD0246BA14-n2.Tomcat1': b'[97 b; 1656741681 s]'})

模拟故障

[root@t2 ~]# systemctl stop tomcat

sessionid不会更改

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值