文章目录
前言:
- Tomcat是一款免费、开放源代码的Web应用服务器,是Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目
- Tomcat由Apache、Sun和一些公司及个人共同开发而成,深受Java爱好者的喜好,并得到部分软件开发商的认可,是目前比较流行的Web应用服务器,官网为:https://tomcat.apache.org/
一、Tomcat 介绍
1.1 Tomcat 核心组件
-
① Web容器
负责底层的HTTP协议
-
② Servlet容器
由catalina脚本帮忙处理的servlet代码,主要处理后端逻辑业务
catalina实际处理的是Servlet代码,而Servlet代码是由Java编写的
-
③ JSP容器(JAVA Scripts page)
JSP:在正常的html标签中嵌入一些java代码
这些JSP最终会被翻译成Servlet代码被执行
主要提供提供前端页面展示
-
小结:tomcat就是一个容器,在这个容器中有三大核心组件:WEB、Servlet 和JSP,所以Tomcat是极其轻量级别的,核心组件都是支持基本运行的组件
1.2 Tomcat处理请求过程
1.2.1 Tomcat处理请求原理图
- 处理请求详细过程
- ① 用户访问网站时,请求被发送到本机端口(connector开放的端口就是8080)8080,被在端口监听的Coyote HTTP/1.1 connector获取
- ② 接受请求之后交给container容器进行处理,container中有一个engine引擎运作
- ③ 基于引擎支撑,容器中会跑很多host虚拟主机,这些虚拟主机中也会有很多context进程(引擎),此处的context类似于前端页面JSP,具体加载到的任务程序会运行servlet(进行逻辑业务处理)
- ④ Servlet处理完后会返回给context
- ⑤ context返回给engine引擎
- ⑥ engine返回给端口
- ⑦ 端口最后将页面展现给用户
CGI:底层通用网关接口(协议) Nginx调用的接口,当有了web服务支持CGI接口之后,想要web服务反馈页面,只有调用通用网关接口才可以反馈页面
1.2.2 四个子容器作用简述
-
Engine:引擎,用来管理多个站点,一个Service最多只能有一个Engine
-
Host:代表一个站点,也可以叫虚拟主机,通过配置Host就可以添加站点
-
Contxt:代表一个应用程序,对应着平时开发的一套程序,或者一个WEB-INF目录以及web.xml文件
-
Wrapper:每一个Wrapper封装着一个Servlet
-
Tomcat顶层架构小结
① Tomcat中只有一个Server,一个Server可以有多个Service,一个Service可以有多个Connector和一个Container
② Server掌管着整个Tomcat的生死大权
③ Service时对外提供服务的
④ Connector用于接受请求并将请求封装成Request和Response来具体处理
⑤ Container用于封装和管理Servlet,以及具体处理request请求
二、Tomcat部署
2.1 实验环境
-
一台centos7虚拟机
tomcat节点 IP地址:192.168.226.128
软件包:
- jdk-8u231-linux-x64.tar.gz
- apache-tomcat-8.5.50.tar.gz
PS:在安装Tomcat之前必须先安装JDK,JDK是Sun公司提供的Java语言的软件开发大工具包,其中包含Java虚拟机(JVM)。
编写好的JAVA源程序经过编译可以形成java的字节码,只要安装了JDK,就可以利用JVM解释这些字节码文件,从而保证了JAVA的跨平台性。在平台兼容性方面,JDK作为解释字节码并据此调用操作系统的API(功能接口)实现对应功能的JAVA虚拟机,与操作系统类型和平台位数密切相关,因此存在不同版本
2.2 实验过程
2.2.1 jdk安装
-
软件包获取
① 使用宿主机下载tomcat软件包
② 安装vsftpd,在线下载tomcat包:
yum install vsftpd -y
systemctl start vsftpd
#在线下载
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.50/bin/apache-tomcat-8.5.50.tar.gz
- 安装jdk
[root@localhost ~]# mount.cifs //192.168.226.1/LAMP-C7 /mnt
Password for root@//192.168.226.1/LAMP-C7:
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# rpm -ivh jdk-8u201-linux-x64.rpm
.....省略部分内容
[[root@localhost mnt]# cd /usr/java/jdk1.8.0_201-amd64/
[root@localhost jdk1.8.0_201-amd64]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
- 添加环境变量
[root@localhost jdk1.8.0_201-amd64]# vim /etc/profile
[root@localhost jdk1.8.0_201-amd64]# tail -3 /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_231
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
#刷新生效
[root@localhost jdk1.8.0_201-amd64]# source /etc/profile
2.2.2 安装Tomcat
[root@localhost jdk1.8.0_201-amd64]# cd /mnt
[root@localhost mnt]# tar zxvf apache-tomcat-8.5.16.tar.gz -C /opt
#将tomcat文件移动到/usr/local,同时重命名为tomcat
[root@localhost mnt]# mv /opt/apache-tomcat-9.0.16/ /usr/local/tomcat
#开启服务
root@localhost mnt]# mv /opt/apache-tomcat-8.5.16/ /usr/local/tomcat
[root@localhost mnt]# cd /usr/local/tomcat/bin/
#执行启动脚本
[root@localhost bin]# ./startup.sh
[root@localhost bin]# netstat -natp | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 13948/java
三、访问Tomcat服务器
3.1 访问测试
3.2 Tomcat目录文件详解
[root@localhost tomcat]# ll
total 92
drwxr-x---. 2 root root 4096 Mar 30 15:36 bin
drwx------. 3 root root 254 Mar 30 15:36 conf
drwxr-x---. 2 root root 4096 Mar 30 15:36 lib
-rw-r-----. 1 root root 57092 Jun 22 2017 LICENSE
drwxr-x---. 2 root root 197 Mar 30 15:36 logs
-rw-r-----. 1 root root 1723 Jun 22 2017 NOTICE
-rw-r-----. 1 root root 7064 Jun 22 2017 RELEASE-NOTES
-rw-r-----. 1 root root 15946 Jun 22 2017 RUNNING.txt
drwxr-x---. 2 root root 30 Mar 30 15:36 temp
drwxr-x---. 7 root root 81 Jun 22 2017 webapps
drwxr-x---. 3 root root 22 Mar 30 15:36 work
-
配置详解:
① bin :启动和关闭Tomcat脚本文件
② conf:存放Tomcat服务器各种配置文件
③ lib :Tomcat服务器的jar包
④ logs:Tomcat日志
⑤ temp:Tomcat运行时产生的文件
⑥ webapps:项目资源的目录
⑦ work:Tomcat工作目录
3.3 Tomcat配置文件详解
[root@localhost conf]# ll
total 224
drwxr-x---. 3 root root 23 Mar 30 15:36 Catalina
-rw-------. 1 root root 13816 Jun 22 2017 catalina.policy
-rw-------. 1 root root 7376 Jun 22 2017 catalina.properties
-rw-------. 1 root root 1338 Jun 22 2017 context.xml
-rw-------. 1 root root 1149 Jun 22 2017 jaspic-providers.xml
-rw-------. 1 root root 2358 Jun 22 2017 jaspic-providers.xsd
-rw-------. 1 root root 3622 Jun 22 2017 logging.properties
-rw-------. 1 root root 7511 Jun 22 2017 server.xml
-rw-------. 1 root root 2164 Jun 22 2017 tomcat-users.xml
-rw-------. 1 root root 2633 Jun 22 2017 tomcat-users.xsd
-rw-------. 1 root root 168251 Jun 22 2017 web.xml
- 配置文件详解
- ① catalina.policy:权限控制配置文件
- ② catalina.properties:Tomcat的属性配置文件
- ③ context.xml:上下文配置文件
- ④ logging.properties:日志相关配置文件
- ⑤ server.xml:主配置文件,通过配置文件,可以修改tomcat的启动端口、网站目录、虚拟主机、开启https等功能
- ⑥ tomcat-user.xml/.xsd:管理用户配置文件
制配置文件
⑦ web.xml:Tomcat的servlet、servlet-mapping、filter、MIME等相关配置