tomcat 入门

1.版本问题

tomcat 8或8.5 配合使用 7.0以上版本JDK

Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个servelet容器,按照Sun microsystems提供的技术规范开发出来,Tomcat 8实现了对servlet 3.1和Javaserver page 2.3(JSP)的支持,并提供了作为web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat附加组件等

2.tomcat 安装

1).构建Java环境

 [root@tomcat ~]# tar xf jdk-8u60-linux-x64.tar.gz
[root@tomcat ~]# mv jdk1.8.0_60/ /usr/local/java8
[root@tomcat ~]# vim /etc/profile.d/java.sh
[root@tomcat ~]# cat /etc/profile.d/java.sh
JAVA_HOME=/usr/local/java8
CLASSPATH=$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
[root@tomcat ~]# source /etc/profile
[root@tomcat ~]# java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

2).安装tomcat

[root@tomcat ~]# tar xf apache-tomcat-8.5.16.tar.gz
[root@tomcat ~]# mv apache-tomcat-8.5.16 /usr/local/tomcat
启动并测试
[root@tomcat ~]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java8
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

访问ip时加上8080端口
在这里插入图片描述

3.tomcat架构

1).架构图

在这里插入图片描述
一个tomcat只有一个server,一个server包含多个service,一个service包含两个核心组件(连接器,容器)连接器可以有多个,容器只有一个。
连接器:connector 处理连接相关的事情,并提供Socket与Request和Response相关的转化
容器:contaioner 封装和管理Servlet,以及具体处理Request请求
整个tomcat生命周期由server控制。

2).connector 结构

在这里插入图片描述

3).container 结构

在这里插入图片描述
host:站点 context:应用程序 wrapper:封装servlet

4).container 处理流程:pipeline—value管道处理。

4.connector 运行模式

(无NIO2)----8.0----(BIO,NIO,NIO2/AIO,APR)----8.5----(无BIO)—
*
BIO:同步阻塞
*
NIO:同步非阻塞
*
NIO2/AIO:异步非阻塞

* 

tomcat 默认使用 NIO 通过 grep -i handler catalina.out 查看 (/usr/local/tomcat/log/)

在这里插入图片描述
在浏览器三个按键查看也可以。

使用按键需要修改配置文件。

vim /usr/local/tomcat/conf/tomcat-users.xml
  <role rolename="manager-gui"/> //对应第二个按钮权限
  <role rolename="admin-gui"/>   //对应第三个按钮权限
  <user username="tomcat" password="tomcat" roles="tomcat,manager-gui,admin-gui"/>

8.5 版本 出现403修改方法

/usr/local/tomcat/conf/Catalina/localhost/manager.xml和/usr/local/tomcat/conf/Catalina/localhost/host-manager.xml 中分别加入以下内容,分别对应

<?xml version="1.0" encoding="UTF-8"?>
<Context privileged="true" antiResourceLocking="false"
         docBase="${catalina.home}/webapps/manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

重启服务

cd /usr/local/tomcat/bin/startup.sh

5.JVM

JVM某种程度上可以被认为是一个虚拟的操作系统,它有着自己的内存模型等;一个Tomcat容器的启动,相当于在JVM中启动了一个进程。

在这里插入图片描述
堆是虚拟机管理内存的最大一块,也是被所有线程共享的内存区域。

当内存不足无法完成实例分配的时候,同时推也无法扩展的时会出现OOM除了程序计数器,都会出现oom(out of memory) 内存溢出。

内存问题,造成主页缺失,次页缺失。

解决方法:修改/usr/local/tomcat/bin/catalina.shJAVA_OPTS=" -server -Xms512m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m"

说明:
Xms 堆内存的初始大小,取决于物理内存,通常一半
Xmx 堆内存上限,取决于物理内存,通常一半
XX:MetaspaceSize:非堆内存初始大小
XX:MaxMeatespaceSize 非堆内存上限

6.内存泄漏

不用的内存没被释放 内存泄漏 >>> 垃圾回收(gc)回收不到 >>> 占用pid,线程多   >>>   tomcat远程连接不上 (用jstack查看解决) 

7.nginx 做负载均衡轮询tomcat配置

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值