• Tomcat相关概述和部署


    目录

    一、Tomcat知识

    1.Tomcat概述

    2.Tomcat组件构成 

    3.Tomcat 功能组件结构

    4.Tomcat的请求过程

    二、tomcat服务部署

    1.老样子准备工作——关闭防火墙和selinux,防止其对安装过程的干扰

    2.将准备好的软件包拖入/opt目录下,进行安装JDK

    3.设置JDK环境变量

    4.编写一个java 简易的源代码,进行环境测试 

    5.安装启动Tomcat

    6.部署虚拟主机

    1.创建 xy101 和 xy102 项目目录和文件

    2.修改 Tomcat 主配置文件 server.xml


    一、Tomcat知识

    1.Tomcat概述

    Tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,是 Apache 软件基金会的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成

    Tomcat 属于轻量级应用服务器,在中小型系统和并发访问用户(据了解tomcat的并发量处理能力是nginx的六分之一)不是很多的场合下被普遍使用,是开发和调试 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 的响应传送回给客户

    Servlet :是Java Servlet 的简称,可以理解为是一个服务连接器,是用 Java 编写的服务器端程序,具有独立于平台和协议的特性

    简单的理解:servlet 就是一个中间件,包含了接口和方法,将客户端和数据库连接,从而实现动态网页的创建。

    JSP: 全称 Java Server Pages,是一种动态网页开发技术。它使用 JSP 标签在HTML网页中插入

    Java 代码。标签通常以 <% 开头,以 %> 结束。也是一种 Java servlet,主要用于实现 Java web 应用程序的用户界面部分。
    JSP 通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页

    因此 Tomcat 是 Web 应用服务器,也是一个 Servlet/JSP 容器。Tomcat 作为 Servlet 容器,负责处理客户的.jsp动态页面的请求,把请求传送给 Servlet,并将 Servlet 的响应传送回给客户。

    3.Tomcat 功能组件结构

    Tomcat 的核心功能有两个,分别是负责接收和反馈外部请求的连接器 Connector,和负责处理请求的容器 Container。 其中连接器和容器相辅相成,一起构成了基本的 web 服务 Service。每个 Tomcat 服务器可以管理多个 Service。

    • Connector:负责对外接收和响应请求。它是Tomcat与外界的交通枢纽,监听端口接收外界请求,并将请求处理后传递给容器做业务处理,最后将容器处理后的结果响应给外界。
    • Container:负责对内处理业务逻辑。其内部由 Engine、Host、Context和Wrapper 四个容器组成,用于管理和调用 Servlet 相关逻辑。
    • Service:对外提供的 Web 服务。主要包含 Connector 和 Container 两个核心组件,以及其他功能组件。Tomcat 可以管理多个 Service,且各 Service 之间相互独立。
    • 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 封装器。

    4.Tomcat的请求过程

    • 用户在浏览器中输入网址,请求被发送到本机端口 8080,被在那里监听的 Connector 获得
    • Connector 把该请求交给它所在的 Service 的 Engine(Container)来处理,并等待 Engine 的回应
    • 请求在 Engine、Host、Context 和 Wrapper 这四个容器之间层层调用,最后在 Servlet 中执行对应的业务逻辑、数据存储等
    • 执行完之后的请求响应在 Context、Host、Engine 容器之间层层返回,最后返回给 Connector,并通过 Connector 返回给客户端

    二、tomcat服务部署

    1.老样子准备工作——关闭防火墙和selinux,防止其对安装过程的干扰

    1. systemctl stop firewalld
    2. systemctl disable firewalld
    3. setenforce 0

    2.将准备好的软件包拖入/opt目录下,进行安装JDK

    1. cd opt
    2. tar xf jdk-8u391-linux-x64.tar.gz
    3. mv jdk1.8.0_391 /usr/local
    4. cd /usr/local/
    5. java -version

    3.设置JDK环境变量

    1. vim /etc/profile
    2. export JAVA_HOME=/usr/local/jdk1.8.0_391 #指定JAVA的家目录
    3. export JRE_HOME=$JAVA_HOME/jre #指定JRE家目录(运行环境)
    4. export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib #指定JAVA运行环境
    5. export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH #将$JAVA_HOME/bin:$JRE_HOME/bin:加入PATH环境变量
    6. source /etc/profile #重新加载
    7. java -version

    4.编写一个java 简易的源代码,进行环境测试 

    1. vim hello.java
    2. #类名、接口名命令:英文大小写字母、数字字符、$和_,不能使用关键字和数字开头;
    3. 一个单词命名时第一个单词的首字母要大写;多单词组成时,所有单词的首字母大写:XxxYyyZzz(大驼峰命名法)
    4. public class hello {
    5. public static void main(String[] args){
    6. System.out.println("hello world!");
    7. }
    8. }
    9. javac hello.java
    10. java hello

    5.安装启动Tomcat

    1. cd /opt
    2. tar zxvf apache-tomcat-9.0.16.tar.gz
    3. mv apache-tomcat-9.0.16 /usr/local/tomcat
    4. ##启动tomcat ##
    5. #后台启动
    6. cd /usr/local/tomcat/bin
    7. ./startup.sh
    8. ./catalina.sh start
    9. #前台启动
    10. /usr/local/tomcat/bin/catalina.sh run
    11. netstat -natp | grep 8080
    12. 浏览器访问Tomcat的默认主页 http://192.168.80.100:8080

    1. #前台启动
    2. cd /usr/local/tomcat/bin
    3. ./catalina.sh run
    4. netstat -lntp | grep 8080
    5. 浏览器访问Tomcat的默认主页 http://192.168.80.101:8080

     

    访问192.168.80.101:8080 

    6.部署虚拟主机

    很多时候公司会有多个项目需要运行,一般不会是在一台服务器上运行多个 Tomcat 服务,这样会

    消耗太多的系统资源。此时, 就需要使用到 Tomcat 虚拟主机

    例如现在新增两个域名 www.xy101.com 和 www.xy102.com, 希望通过这两个域名访问到不同的

    项目内容

    1.创建 xy101 和 xy102 项目目录和文件
    1. cd /usr/local/tomcat/webapps
    2. mkdir xy101
    3. mkdir xy102
    4. echo "this is xy101 test" > xy101/index.html
    5. echo "this is xy102 test" > xy102/index.html
    2.修改 Tomcat 主配置文件 server.xml
    1. vim /usr/local/tomcat/conf/server.xml
    2. --165行前--插入
    3. <Host name="www.xy101.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    4. <Context docBase="/usr/local/tomcat/webapps/xy101" path="" reloadable="true" />
    5. </Host>
    6. <Host name="www.xy102.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    7. <Context docBase="/usr/local/tomcat/webapps/xy102" path="" reloadable="true" />
    8. </Host>

  • 相关阅读:
    相互协助抗旱求稳产 国稻种芯·襄州代岗村:推广借水模式
    图解 Google V8 # 17:消息队列:V8是怎么实现回调函数的?
    【Rust】——Vector集合
    用HTTP服务的方式集成 learned cardinality estimate 方法进 Postgresql
    golang内存分析工具
    英语语法汇总(9.时态)
    JavaScript-DOM实战案例
    英伟达GPU架构加速狂飙
    aspnetcore6.0源代码编译调试
    汇编语言之母逝世,71岁时还和儿子合写神经网络论文
  • 原文地址:https://blog.csdn.net/aran2002/article/details/139454286