目录
[4、什么是 JSP](#4、什么是 JSP)
[5.1、Container 结构分析:](#5.1、Container 结构分析:)
[五、Tomcat 虚拟主机配置](#五、Tomcat 虚拟主机配置)
一、Tomcat
1、tomca简介
Tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,是 Apache 软件基金会的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。
Tomcat 属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。一般来说,Tomcat 虽然和 Apache 或者 Nginx 这些 Web 服务器一样,具有处理 HTML 页面的功能,然而由于其处理静态 HTML 的能力远不及 Apache 或者 Nginx,所以 Tomcat 通常是作为一个 Servlet 和 JSP 容器,单独运行在后端
2、tomcat核心组件
- Web 容器:完成 Web 服务器的功能。
- Servlet 容器:名字为 catalina(凯特琳娜),用于处理 Servlet 代码。
- JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码
因此 Tomcat 是 Web 应用服务器,也是一个 Servlet/JSP 容器。Tomcat 作为 Servlet 容器,负责处理客户的.jsp动态页面的请求,把请求传送给 Servlet,并将 Servlet 的响应传送回给客户。
3、Servlet是什么
大白话来说就是一个服务连接器 ,是用 Java 编写的服务器端程序,具有独立于平台和协议的特性, 简单的理解:servlet 就是一个中间件,包含了接口和方法,将客户端和数据库连接,从而实现动态网页的创建
4、什么是 JSP
JSP 全称 Java Server Pages,是一种动态网页开发技术。它使用 JSP 标签在HTML网页中插入 Java 代码。标签通常以 <% 开头,以 %> 结束。
JSP 是一种 Java servlet,主要用于实现 Java web 应用程序的用户界面部分。
JSP 通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
5、tomcat功能组件结构
Tomcat 的核心功能有两个,分别是负责接收和反馈外部请求的连接器 Connector,和负责处理请求的容器 Container。 其中连接器和容器相辅相成,一起构成了基本的 web 服务 Service。每个 Tomcat 服务器可以管理多个 Service
Connector:负责对外接收和响应请求。它是Tomcat与外界的交通枢纽,监听端口接收外界请求,并将请求处理后传递给容器做业务处理,最后将容器处理后的结果响应给外界。
Container:负责对内处理业务逻辑。其内部由 Engine、Host、Context和Wrapper 四个容器组成,用于管理和调用 Servlet 相关逻辑。
- Service:对外提供的 Web 服务。主要包含 Connector 和 Container 两个核心组件,以及其他功能组件。Tomcat 可以管理多个 Service,且各 Service 之间相互独立。
- Connector:负责对外接收和响应请求。它是Tomcat与外界的交通枢纽,监听端口接收外界请求,并将请求处理后传递给容器做业务处理,最后将容器处理后的结果响应给外界。
- Container:负责对内处理业务逻辑。其内部由 Engine、Host、Context和Wrapper 四个容器组成,用于管理和调用 Servlet 相关逻辑。
- Service:对外提供的 Web 服务。主要包含 Connector 和 Container 两个核心组件,以及其他功能组件。Tomcat 可以管理多个 Service,且各 Service 之间相互独立。
5.1、Container 结构分析:
每个 Service 会包含一个 Container 容器。在 Container 内部包含了 4 个子容器:
4个子容器的作用分别是:
(1)Engine:引擎,用来管理多个虚拟主机,一个 Service 最多只能有一个 Engine;
(2)Host:代表一个虚拟主机,也可以叫站点,通过配置 Host 就可以添加站点;
(3)Context:代表一个 Web 应用,包含多个 Servlet 封装器;
(4)Wrapper:封装器,容器的最底层。每一 Wrapper 封装着一个 Servlet,负责对象实例的创建、执行和销毁功能。
Engine、Host、Context 和 Wrapper,这四个容器之间属于父子关系。
容器 由一个引擎可以管理多个虚拟主机。每个虚拟主机可以管理多个 Web 应用。每个 Web 应用会有多个 Servlet 封装器。
5.2、tomcat的请求过程
用户在浏览器输入网址 请求被发送到本机端口 8080,被在那里监听的 Connector 获得
然后Connector把该请求发送给它的Engine来处理 并等带它的回应
Engine根据域名传递给对应的虚拟主机Host容器
Host容器根据URL路径传递给Context容器
Context运行WEB网页程序
Wrapper根据程序代码处理业务逻辑
然后一层一层返回给Connector Connetcor返回给客户端
下面是自己画的图 简单易懂
二、Tomcat服务部署
先初始化一下虚拟机 懂得都懂 不演示了 具体翻看之前的博客
1、安装JDK
我这里有安装包 直接解压了 然后移动到 /usr/local下面 进入到里面就会看到JDK
然后配置jdk环境变量
vim /etc/profile
保存退出 然后 source /etc/profile
然后到根目录下 创建一个 XXX.java文件 我这里创建的是Hello.java文件
配置内容如图
保存退出
此时 jdk环境变量配置好了
安装tomcat
此时 到浏览器访问本地路径
出现tomcat服务 就是安装启动好了
然后有个软件可以自动拉起各种服务 叫supervisor
supervisor简介
supervisor是Python开发的c/s服务,是Linux系统下的进程管理工具。
可以监听、启动、停止、重启一个或多个进程
用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程的自动恢复的功能,不在需要自己写脚本来控制
三、supervisor安装部署
yum install -y supervisor 注意的是 需要把yum.d里面备份的镜像源移出来
安装好后 vim /etc/supervisord.conf
配置如下:
然后
tomcat.conf配置内容如下
保存退出 然后systemctl start supervisord 启动
验证:
此时 服务是能自动被拉起的 说明 supervisor 也部署成功
四、tomcat启动优化
先进入到
配置内容如下:
然后
五、Tomcat 虚拟主机配置
很多时候公司会有多个项目需要运行,一般不会是在一台服务器上运行多个 Tomcat 服务,这样会消耗太多的系统资源。此时, 就需要使用到 Tomcat 虚拟主机。
例如现在新增两个域名 www.xy101.com 和 www.xy102.com, 希望通过这两个域名访问到不同的项目内容。
配置内容如下:
然后
然后修改本机hosts文件
添加 域名
然后
六、Tomcat多实例部署
然后修改端口号
第二个tomcat修改端口号的内容如下
然后进入cd tomcat/bin/ 修改启动脚本
配置文件如下
然后修改停止脚本 配置一样
然后 tomcat2和上面配置一样 启动脚本 停止脚本都这样配置
然后我们启动两个 tomcat
验证一下 两个端口号
8080 能启动
8081 也能启动 所以至此 多实列也配置好了