设为首页 加入收藏

TOP

Tomcat 入门实战(1)--简介(一)
2023-07-25 21:38:26 】 浏览:61
Tags:Tomcat 简介

Tomcat 是 Apache 软件基金会(Apache Software Foundation)的一个开源项目,实现了 Servlet 及 JSP 规范,可以用来部署 WEB 应用及 WebService;本文主要介绍其基本概念。

1、Tomcat 安装

安装 Tomcat 之前需要先安装 Java,并设置 $JAVA_HOME 环境变量,Linux bash 环境下可按如下方式设置:

export JAVA_HOME=/home/mongo/soft/jdk1.8.0_321

下载 Tomcat 安装包,https://tomcat.apache.org/download-80.cgi,这里下载 Tomcat 8 的 zip 格式安装包,解压:

unzip apache-tomcat-8.5.85.zip

启动:

cd bin
./startup.sh

2、Tomcat 目录结构

Tomcat 解压后的目录为 Tomcat 根目录,使用 $CATALINA_HOME 表示;根目录下有如下目录:

bin:存放启动、关闭和其他脚本
conf:存放配置文件及相关 DTD
logs:存放日志文件
lib:jar 包存放目录
temp:临时文件目录
webapps:应用程序部署目录
work:Tomcat 工作目录,如存放 JSP 编译后的类文件

3、Tomcat 配置文件

Tomcat 配置文件存放在 $CATALINA_HOME/conf 下:

server.xml: Tomcat 核心配置文件,包含 Service、Connector、Engine、Realm、Valve、Hosts 等组件的相关配置。
context.xml:此文件为所有的 webapps 提供默认配置,每个 web 应用可以有自己的 context.xml,其存放位置为 META-INF 目录。
web.xml:此文件为所有的 webapps 提供默认部署相关的配置,每个 web 应用也可以使用自己的 web.xml 来覆盖全局的 web.xml。
tomcat-users.xml:用于配置管理 Tomcat 的角色、账号及密码。
catalina.policy:当使用 security 选项启动 Tomcat 时,用于为 Tomcat 设置安全策略。
catalina.properties:Tomcat 环境变量的配置,用于设定类加载器路径,以及一些与JVM调优相 关参数。
logging.properties:Tomcat 日志相关的配置,可以修改日志级别和日志路径等。

4、Tomcat 架构

 Tomcat 可以按功能划分许多不同的组件,这些组件都可以在 conf/server.xml 文件中定义和配置;组件可分为四类:

1、顶级组件:位于配置层次的顶级,彼此间有着严格的对应关系,有 Server 及 Service组件;
2、连接器:连接客户端请求至 Servlet 容器,只有 Connector 组件;
3、容器:处理传入请求并创建响应的组件;Engine 处理 Service 的所有请求,Host 处理特定虚拟主机的所有请求,Context 处理特定 web 应用的所有请求;
4、被嵌套的组件:位于一个容器当中,但不能包含其它组件;一些组件可以嵌套在任何 Container 中,而另一些只能嵌套在 Context 中;

4.1、Server

Server(服务器)表示 Tomcat 的一个实例,它位于 conf/server.xml 的最外层,通常一个 JVM 只能包含一个 Tomcat 实例。默认配置表示在 8005 端口接收 shutdown 命令,且仅允许通过本机访问。

4.2、Service

Service(服务)主要用于关联 Engine 和 Connector,每个 Connector 通过一个特定的端口和协议接收请求,并将其转发至关联的 Engine 进行处理。因此,Service 包含一个 Engine、一个或多个Connector;而一个 Server 可以包含多个 Service,但通常情下一个 Server 只配置一个 Service。通常需要给 Service 命名,方便管理员在日志文件中识别不同的 Service。默认配置中 Server 只包含一个名为”Catalina"的 Service,而 Service里包含两个 Connector,其中一个监听 8080 端口接收 HTTP 请求,另一个监听 8009 端口接收 AJP 协议请求。

4.3、Connector

Connector(连接器)通过特定的端口接收特定协议的客户端请求,并将其转发至关联的 Engine 进行处理。一个 Engine 可以对应多个连接器,但必须使用不同的端口。连接器的常用属性如下:

1)、address:监听地址,默认为所有地址,即 0.0.0.0
2)、port:监听端口
3)、protocol:协议,默认为 HTTP/1.1
4)、URIEncoding:url 编码
5)、maxThreads:最大线程数,默认为 200
6)、minSpareThreads:最小保留的线程数
7)、maxSpareThreads:最大空闲线程数
8)、maxHttpHeaderSize:最大头大小
9)、redirectPort:如果连接器的协议是 HTTP,当客户端发来 HTTPS 请求时,则转发至此属性定义的端口
10)、connectionTimeout:客户端连接超时时间,单位为毫秒,默认为 60000,即 1 分钟
11)、enableLookups:是否允许通过 request.getRemoteHost() 进行 DNS 查询以获取客户端的主机名,默认为 true
12)、acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

连接器类型可以分为两种:

A、HTTP 连接器
HTTP 连接器表示支持 HTTP/1.1 协议的连接器组件,它使 Tomcat 能够作为独立的 Web 服务器。HTTP 连接器有三种不同的实现:Java Nio Connector、Java Nio2 Connector、APR/native Connector,它们的对比如下:

默认配置定义了一个协议为 protocol="HTTP/1.1"  的 Connector,表示根据环境自动选择具体的实现,也可以手动指定。

B、AJP 连接器

AJP 连接器表示通过 AJP(Apache JServ Protocol)协议与 Web 服务器通信的连接器。AJP 协议用于 Web 服务器和 Tomcat 之间传输数据,这比 HTTP 协议有更好的效率,但比较复杂不通用。通常用于将 Tomcat 集成到 Apache 服务器中,并且希望 Apache 处理静态内容或 SSL 连接的处理,即 Apache 服务器作为代理服务器。Apache 与 Tomcat 结合可以由 mod_jk 或 mod_proxy 模块来实现,但它们的使用范围不同:mod_jk 支持 apache/1.3,apache/2.0,mod_proxy 支持 apache/2.2+。默认配置了了一个监听 8009 端口的 AJP 连接器。

4.4、Engine

Engine(引擎)接收和处理来自一个或多个连接器的请求,并检查请求的 HTTP 头部信息以辨别请求应该发往哪个 Host 或 Context,并将完成的响应返回到连接器,以便最终传输回客户端。Engine 组件必

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇一篇随笔入门Java 下一篇day01-2-依赖管理和自动配置

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目