大神教你轻松驾驭Tomcat

admin5个月前笔记62

image.png对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0。

一、Tomcat体系架构

image.png

核心组件
server:相当于一个tomcat实例。接收并解析请求信息;完成相关动作后把响应结果返回给计算机。
service:每个server包含多个service,相互独立,仅共享JVM以及类库。用于把连接器(connector)与引擎(engine)关连起来,且一个service只能有一个engine,但是可以有多个connector。因为engine无法直接接受连接器发来的数据。
connector:负责开启socket并监听客户端请求、返回响应数据。多个connector监听多个端口
engine:负责具体的处理请求,connector仅仅负责监听,收到数据后交给engine运行。
host:在ngine中可以包含多个host,每个host定义了虚拟主机
context:每个context可以部署一个web应用。一个host可以存在多个context。如果部署多个应用需要分别对每个应用装载所依赖的库,这个步骤可以自动可以手动。
二、Tomcat的安装

tomcat其实就是一个JAVA程序,所以要运行在JAVA虚拟机中。要运行虚拟机就要先安装JDK。

1.JDK的安装

1.通过YUM安装

yum install java-1.8.0-openjdk-devel

2.配置环境变量

vim /etc/profile.d/java.sh
 export JAVA_HOME=/usr/java/latest                  # 首先定义JAVA_HOME的环境变量
 export PATH=$JAVA_HOME/bin:$PATH                   # 然后向后追加即可
2.Tomcat的安装

首先要从Tomcat的官网下载Tomcat,然后上传至服务器解压。 https://tomcat.apache.org

1.将下载的软件包解压
tar xf apache-tomcat-VERSION.tar.gz  -C /usr/local/
cd /usr/local

2.创建软连接,或者将解压的tomcat直接改名为tomcat也能达到同样的效果
ln -sv apache-tomcat-VERSION  tomcat 
3.添加环境变量
vim /etc/profile.d/tomcat.sh 
    export CATALINA_BASE=/usr/local/tomcat
    export PATH=$CATALINA_BASE/bin:$PATH  

4.创建tomcat需要的用户
useradd tomcat 

5.将安装包的路径下的所有属组都改为tomcat
chown -R root.tomcat /usr/local/tomcat                      # 设定所有者为root,所属组为tomcat
chown -R tomcat /usr/local/tomcat/{logs,temp,work,webapps}  # 仅将需要有写权限文件所有者改为tomcat
chmod g+r /usr/local/tomcat/conf                            # 默认没有权限,会导致启动失败

5.切换到tomcat用户最后启动服务即可
su - tomcat 
catalina.sh start                                   # 启动tomcat。catalina.sh命令需要先添加环境变量
三、Tomcat服务的配置文件结构
bin:   脚本、以及Tomcat自身所携带的工具包
conf:  Tomcat服务的配置文件目录;
lib:   库文件,Java类库,jar;
logs:  日志文件目录;
temp:  临时文件目录;
webapps:webapp的默认目录;相当于页面的根目录。部署的应用都应该在IC目录下
work:  工作目录,存放编译后的字节码文件;
四、部署测试页面

创建一个测试页面,将下面的步骤全部做完后,通过浏览器访问http://IP:8080/test 即可访问到测试的页面

1.创建文件夹
classes、lib、WEB-INF为一个标准应用应该有的目录,这里创建仅仅为了与标准看齐
mkidr  -pv  /usr/share/tomcat/webapps/test/{classes,lib,WEB-INF}
2.创建一个测试页面用于检验Tomcat服务是否能正常提供服务
3.重启服务
systemctl restart tomcat
4.部署完成后在webapp目录自动生成一些目录
cd  /usr/share/tomcat/work/Catalina             # 部署完成后自动生成的test目录下的文件
[root@localhost Catalina]# tree .
.
└── localhost                                   # 默认主机站点
    ├── _
    ├── docs
    ├── examples
    ├── host-manager
    ├── manager
    ├── sample
    └── test                                    # webpp应用名称。自动生成以下目录
        └── org
            └── apache
                └── jsp
                    ├── index_jsp.class
                    └── index_jsp.java


相关文章

霸气!Nginx 中缓存静态文件秘籍

霸气!Nginx 中缓存静态文件秘籍

1、准备事项我想你需要一个正常工作的 nginx 软件,可以查看另一篇的帖子:在 Ubuntu 16.04 LTS 上安装 Nginx,PHP 7 和 MySQL 5.7 (LEMP)。2 配置 ng...

快速理解前后端分离的本质

快速理解前后端分离的本质

一、前后端分离本质大家往往会陷入一个误区,试图用具体的技术来描述什么是前后端分离这个一个概念,这是答非所问的。比如一提到前后端分离就是Laravel + Vue,这并不是完全正确的理解!我们问的是:你...

人工智能如此火爆!chatGPT国内能用吗?

人工智能如此火爆!chatGPT国内能用吗?

由于ChatGPT其先进的自然语言处理技术和强大的对话生成能力,ChatGPT迅速吸引了大量用户的关注和使用。ChatGPT的用户群体涵盖了各行各业的人们,包括学生、教育者、企业家、研究人员等等。用户...

简单介绍mysql中数据库覆盖导入的几种方式

简单介绍mysql中数据库覆盖导入的几种方式

众所周知,数据库中INSERT INTO语法是append方式的插入,而最近在处理一些客户数据导入场景时,经常遇到需要覆盖式导入的情况常见的覆盖式导入主要有下面两种:1、部分覆盖:新老数据根据关键列值...

云计算将成企业大数据业务发展核心推动因素

云计算将成企业大数据业务发展核心推动因素

现如今,企业管理者们几乎每天都不可避免的会看到诸如“大数据”或“云服务”这样的字眼。为了确保在当今的市场上具有竞争力,企业必须做出明智的业务决策,这些业务决策将产生真正的结果,无论这些结果是帮助增加企...

分享一条history命令小技巧

在使用linux终端执行bash的时候,发现怎么没有时间标识呢,这以后还怎么查是哪天执行了那条命令呢。这个history的作用就是将bash执行过的所有命令存储到.bash_history文件中,帮助...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。