tomcat
简介
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。(百度百科)
和apache的区别
- httpd是处理静态页面html,但是.jsp,.asp,.php等动态资源需要交由tomcat处理
- httpd是C语言编写的,而tomcat是java语言编写。 tomcat主要是java中的jsp、servlet类库的实现。
- apache和tomcat都是独立运行的,都可以运行在同一台机器上。 一般情况是apche处理静态资源,类似jsp等动态资源反代给tomcat处理
- httpd是web服务器,tomcat是轻量级应用服务器。
tomcat组件
上图是根据tomcat的配置文件server.xml里来画的,不太详细。
-
server:是tomcat的实例化,属于顶级服务组件。可以理解为server将tomcat实现成为一个运行的java进程。 默认监听在
8005
端口,并且只接受"SHUTDOWN"
的指令。所以如果需要多个tomcat实例运行的话,需要创建多个端口。 然后需要将"SHUTDOWN"
指令改为不易发现的指令。如果使用默认的指令,telnet可以通过SHUTDOWN指令来关闭tomcat -
service:主要是用来实现一个或多个connector和engine(只能唯一)的连接
-
connector:用来定义访问的端口和请求方式。
- tomcat的请求方式有三个:http、https、ajp协议。
- 由于java运行的时候是以普通用户的身份运行,所以它的端口在1024以外,默认是8080
- 它可以有一个或者多个container
-
engine: 根据用户的请求头部信息,将请求发送给特定的虚拟主机响应。 它内部定义了一个或多个虚拟主机,在定义的虚拟主机都没有办法响应时,由默认虚拟主机响应。
-
host:engine内部的虚拟主机,它用来定义资源存放路径、是否自动部署、是否自动展开归档文件、虚拟主机名称等。 由于tomcat内部是不能以ip地址的形式出现。所以区分虚拟主机只能以名称区分。
- 归档文件示例:
- .war:一般是网站应用的打包
- .jar:EJB的类文件打包
- .rar:资源适配类的打包
- .ear:企业级的网站应用打包
- 归档文件示例:
-
context:上图没有体现,和host一样,也是定义资源路径的。它类似于nginx的alias
-
value:属于被嵌套组件,它用来记录客户端地址、访问日期等等。被嵌套的还有logger等等。
安装tomcat
由于tomcat是java编译的,所以我们需要下载java的jdk来支撑它的运行,同时也方便运行。 linux默认安装的是java1.7和1.8版本的openjdk。
两个版本也足够使用,也可以安装它rpm包里的最新。
[root@localhost ~]# yum install -y java-11-openjdk.x86_64
安装完之后,系统并不会将java环境指向最新版,如果想指向最新版,需要alternatives
命令指向最新版
[root@localhost ~]# java -version
openjdk version "1.8.0_222-ea"
OpenJDK Runtime Environment (build 1.8.0_222-ea-b03)
OpenJDK 64-Bit Server VM (build 25.222-b03, mixed mode)
[root@localhost ~]# alternatives --config java
共有 3 个提供“java”的程序。
选项 命令
-----------------------------------------------
1 java-1.7.0-openjdk.x86_64 (/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.221-2.6.18.1.el7.x86_64/jre/bin/java)
*+ 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b03-1.el7.x86_64/jre/bin/java)
3 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.8.10-0.el7_8.x86_64/bin/java)
按 Enter 保留当前选项[+],或者键入选项编号:3
这样java的环境就变成11版
[root@localhost ~]# java -version
openjdk version "11.0.8" 2020-07-14 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.8+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.8+10-LTS, mixed mode, sharing
官网下载安装
官网上下载tar.gz格式的包即可apache-tomcat-9.0.37.tar.gz
解压文件到/usr/local/ydong下
tar xvf apache-tomcat-9.0.37.tar.gz -C /usr/local/ydong/
将解压后的目录文件链接至tomcat
[root@localhost ydong]# ln -sv apache-tomcat-9.0.37 tomcat
目录的文件介绍
[root@localhost tomcat]# ll
总用量 124
drwxr-x--- 2 root root 4096 8月 9 12:59 bin 存放tomcat的命令程序
-rw-r----- 1 root root 18982 7月 1 04:14 BUILDING.txt
drwx------ 2 root root 238 7月 1 04:14 conf 存放配置文件
-rw-r----- 1 root root 5409 7月 1 04:14 CONTRIBUTING.md
drwxr-x--- 2 root root 4096 8月 9 12:59 lib
-rw-r----- 1 root root 57092 7月 1 04:14 LICENSE
drwxr-x--- 2 root root 6 7月 1 04:09 log