菜鸟学Linux 第101篇笔记 tomcat基本原理

简介:

菜鸟学Linux 第101篇笔记 tomcat基本原理




内容总览

java

tomcat 结构

tomcat 配置层次

安装tomcat

为tomcat提供服务脚本





JAVA EE APIs

EJB (Enterrpise JavaBeans)

JMS (Java Message Service)

JMX (Java Management Extensions)

JTA (Java Transaction API)

JavaMail



Java SE APIs

JNDI (Java Naming and Directory Interface)

JAXP (Java API for XML Processing)



JAVA EE application Servers 商业版

webserver IBM

weblogic Oracle

oc4j Oracle

JBoss RedHat

JOnAS 

Geronimo

Glassfish




 ASF Apache Software Foundation

  Jserve + TWS(Sun)--> tomcat (程序名称)

  catalina (代码名称)



tomcat 结构 

tomcat实例 server

service connectors

engine (web|servlet container jvm)

host

context



容器类组件

Engine, Host, Context


顶级组件

Server, service


Realm 用户账号数据库

Valve

记录访问日志

基于IP认证

...

logger 日志记录器



部署

将一个web应用程序所依赖到的类装载进jvm


tomcat 配置层次

<server>

<service>

<Connector />


<engine>

<host>

<context>

</context>

</host>

<host>

</host>

</engine>

</service>

</server>


顶级组件:位于整个配置的顶层

容器类: 可以包含其它组件的组件

连接器组件: 连接用户的请求至tomcat

被嵌套类的组件: 位于一个容器当中,不能包含其它组件


容器类:

engine: 核心容器 catalina引擎,负责通过connector接收用户请求

host: 类似于httpd中的虚拟主机,支持基于FQDN虚拟主机

context: 最内层的容器组件,一个context代表一个web应用程序;配置context的主机目的

 指定对应的webapp的根目录,还能为webapp指定额外的属性,如部署方式等


服务;

service  将连接器关联至engine 一个service内有多个connector,只有一个engine


顶级组件: server,表示一个运行于JVM中的tomcat实例


嵌套类组件:

valve: 拦截请求并再将其转至对应的webapp之前进行某种处理操作

logger: 日志记录器,用于记录组件 内部的状态信息

用于除context之外的任何容器中


realm 可以用于任何容器类组件中,关联一个用户认证库,实现认证和授权

UserDatabaseRealm 使用JNDI自定义的用户认证库

MemoryReal: tomcat-users.xml

JDBCRealm 基于JDBC连接至数据库中查找用户




部署:使用类加载器,为webapp准备好其依赖所有类



apache jserv protocal

二进制协议,使用httpd反向代理用户请求至tomcat时,在httpd和tomcat之间使用



安装tomcat

准备工作,必须先安装JDK才可以安装tomcat 


1. 下载tomcat 

tomcat是apache的一个项目,所以在apache官网里有下载地址

tomcat.apache.org

我下载的是tomcat7.0.33 二进制版本


2. 安装tomcat

# tar -xf apache-tomcat-8.5.11.tar.gz -C /usr/local/

# cd /usr/local/

# ln -sv apache-tomcat-8.5.11 tomcat


3. 添加环境变量

# vim /etc/profile.d/tomcat.sh 

添加如下两行

export CATALINA_HOME=/usr/local/tomcat

export PATH=PATH:CATALINA_HOME/bin


(至此tomcat安装完成)



查看tomcat版本

# catalina.sh version


启动一个tomcat

# catalina.sh start


APR: Apache Portable Runtime


为tomcat提供服务脚本

# vim /etc/init.d/tomcat

#!/bin/sh

# Tomcat init script for Linux.

#

# chkconfig: 2345 96 14

# description: The Apache Tomcat servlet/JSP container.

JAVA_HOME=/usr/java/latest

CATALINA_HOME=/usr/local/tomcat

export JAVA_HOME CATALINA_HOME


case $1 in

start)

$CATALINA_HOME/bin/catalina.sh start;;

stop)

$CATALINA_HOME/bin/catalina.sh stop;;

restart)

$CATALINA_HOME/bin/catalina.sh stop

sleep 2

$CATALINA_HOME/bin/catalina.sh start;;

*)

echo "Usage: `basename $0` {start|stop|restart}"

exit 1 ;;

esac


# chmod +x /etc/init.d/tomcat

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1897337如需转载请自行联系原作者


Winthcloud

目录
打赏
0
0
0
0
89
分享
相关文章
框架源码私享笔记(01)Tomcat核心架构功能 | 配置详解
本文首先分享了《活出意义来》一书序言中的感悟,强调成功如同幸福,不是刻意追求就能得到,而是全心投入时的副产品。接着探讨了Tomcat的核心功能与架构解析,包括网络连接器(Connector)和Servlet容器(Container),并介绍了其处理HTTP请求的工作流程。文章还详细解释了Tomcat的server.xml配置文件,涵盖了从顶级容器Server到子组件Connector、Engine、Host、Context等的配置参数及作用,帮助读者理解Tomcat的内部机制和配置方法。
|
9天前
|
【Linux】阻塞信号|信号原理
本教程从信号的基本概念入手,逐步讲解了阻塞信号的实现方法及其应用场景。通过对这些技术的掌握,您可以更好地控制进程在处理信号时的行为,确保应用程序在复杂的多任务环境中正常运行。
114 84
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
298 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
深入理解Linux内核调度器:原理与优化
本文探讨了Linux操作系统的心脏——内核调度器(Scheduler)的工作原理,以及如何通过参数调整和代码优化来提高系统性能。不同于常规摘要仅概述内容,本摘要旨在激发读者对Linux内核调度机制深层次运作的兴趣,并简要介绍文章将覆盖的关键话题,如调度算法、实时性增强及节能策略等。
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
这篇文章是关于自动化测试项目实战笔记,涵盖了JDK、Tomcat、MySQL、Jpress环境的安装和搭建过程,以及测试用例和常见问题总结。
130 1
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
|
5月前
|
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
167 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
21张图解析Tomcat运行原理与架构全貌
【10月更文挑战第2天】本文通过21张图详细解析了Tomcat的运行原理与架构。Tomcat作为Java Web开发中最流行的Web服务器之一,其架构设计精妙。文章首先介绍了Tomcat的基本组件:Connector(连接器)负责网络通信,Container(容器)处理业务逻辑。连接器内部包括EndPoint、Processor和Adapter等组件,分别处理通信、协议解析和请求封装。容器采用多级结构(Engine、Host、Context、Wrapper),并通过Mapper组件进行请求路由。文章还探讨了Tomcat的生命周期管理、启动与停止机制,并通过源码分析展示了请求处理流程。
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
97 3
深度探索Linux操作系统 —— Linux图形原理探讨3
深度探索Linux操作系统 —— Linux图形原理探讨
87 9
深度探索Linux操作系统 —— Linux图形原理探讨1
深度探索Linux操作系统 —— Linux图形原理探讨
142 7
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等