Tomcat介绍和安装,以及tomcat的虚拟主机配置

article/2025/6/11 13:49:47

为什么Tomcat火了

  • Tomcat介绍
        • Tomcat核心组件
        • 简述Tomcat处理请求过程
        • Tomcat目录机构
  • Tomcat安装
  • 虚拟主机配置

Tomcat介绍

●自从JSP发布之后,推出了各式各样的JSP引擎,Apache Group在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持Servlet,这样Tomcat就诞生了。

●Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选

●当配置正确时, Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet.另外, Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过, Tomcat处理静态HTML的能力不如Apache服务器。

Tomcat核心组件

在这里插入图片描述

●通常意义上的Web服务器接受请求后,只是单纯地响应静态资源,如HTML文件,
图片文件等,不能在后端进行一定的处理操作。Tomcat是Apache下的一个子项目,它具备Web服务器的所有功能,不仅可以监听接受请求并响应静态资源,而且可以在后端运行特定规范的Java代码Servlet,同时将执行的结果以HTML代码的形式写回客户端。

●Tomcat由一系列的组件构成,其中核心的组件有三个:

  1. Web容器:完成Web服务器的功能。
  2. Servlet容器:名字为catalina,用于处理Servlet代码。
  3. JSP容器:用于将JSP动态网页翻译成Servlet代码。

简述Tomcat处理请求过程

1请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/11.1Connector获得。
2Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应。
3Engine获得请求localhost/yy/index.JSP匹配它所拥有的所有虚拟主机Host.
4Engine匹配到名为localhost的Host,即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机。
5localhost Host获得请求/yy/index.JSP,匹配它所拥有的所有Context。
6Host匹配到路径为/yy的Context,如果匹配不到,就把该请求交给路径名为Context去处理。
7path=" /yy"的Context获得请求/index.JSP,在它的mapping table中寻找对应的Servlet。
8Context匹配到URL PATTERN为*.JSP的Servlet,对应于JSPServlet类。
9构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JSPServlet的doGet()或doPost()方法。
10Context把执行完了之后的HttpServletResponse对象返回给Host,
11Host把HttpServletResponse对象返回给Engine。
12Engine把HttpServletResponse对象返回给Connector。
13Connector把HttpServletResponse对象返回给客户browser。

在这里插入图片描述

Tomcat目录机构

在这里插入图片描述

bin存放启动和关闭Tomcat的脚本文件,比较常用的是catalina.sh, startup.sh、shutdown.sh 三个文件
conf存放Tomcat服务器的各种配置文件,比较常用的是server.xml, context.xml、tomcat-users.xml、web.xml四个文件。
lib存放 Tomcat 服务器的 jar 包,一般不作任何改动,除非连接第三方服务,比如redis,那就需要添加相对应的 jar 包
logs存放 Tomcat 日志
temp存放 Tomcat 运行时产生的文件
webapps存放项目资源的目录
workTomcat 工作目录,一般清除 Tomcat 缓存的时候会使用到

Tomcat安装

(1)下安装JDK
在部署Tomcat之前必须安装好jdk,因为jdk是Tomcat运行的必要环境.而jdk的安
装也相对比较简单,版本有很多,这里我们选择rpm版本即可!

打开oracle官网http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html, 该网页中会有172的大版本,根据所使用的计算机硬件配置,选择其中一个安装包,本案例,选择基于 linux64 位 rpm 版本,必须选中Accept License Agreement

再进行下载Linux x64 168.05 MB jdk-8u201-linux-x64.rpm

将jdk软件包上传到/root目录下安装jdk
[root@localhost opt]# rpm -ivh jdk-8u201-linux-x64.rpm
警告: jdk-8u201-linux-x64.rpm:V3 RSA/SHA256 Signature, 密钥ID ec551f03: NOKEY
准备中...                                                      ##############[100%]
正在升级/安装..1:jdk1.8-2000:1.8.0_201-fcs                                ############[100%]
Unpacking JAR files...tools.jar....lugin.jar....javaws.jar....deploy.jar....rt.jar....jissejar.charsets.jar....localedata.jar....##确认jdk安装目录·
[root@localhost opt]# cd /usr/java/jdk1.8.0_201-amd64/
[root@localhost jdk1.8.0 201-amd64]# ll
总用量25980
drwxr-xr-x 2 root root    4096      37      22:09  bin
-rw-r--r-- 1 root root    3244      1216     03:45  COPYRIGHT
drwxr-xr-x 3 root root    132       37      22:09 include
-rw-r--r-- 1 root root    5207434   1212     17:07 javafx-src.zip
drwxr-xr-x 5 root root    185       37      22:09 jre
drwxr-xr-x 5 root root    245       37      22:09 lib
-rw-r--r-- 1 root root    40        1216     03:45 LICENSE
drwxr-xr-x 4 root root    47        37      22:09 man
-rw-r--r-- 1 root root    159       1216     03:45 README.html
-rw-r--r-- 1 root root    424       1216     03:45 release
-rw-r--r-- 1 root root    21103945  1216     03:45 src.zip
-rw-r--r-- 1 root root    108109    1212     17:07 THIRDPARTYLICENSEREADME-JAVAFX.txt
-rw-r--r-- 1 root root    155002    1216     03:45 THIRDPARTYLICENSEREADME.txt##设置JDK环境变量###
[root@localhost ~]# vi /etc/profile                   ##下面参数新增#
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH[root@localhost ~]# source /etc/profile         ##环境变量生效##[root@localhost ~]#java -version                    ###查看java版本##
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

(2)安装启动Tomcat
执行下面的命令, 从 Tomcat 官网下载 apache-tomcat-9.0.16.tar.gz 稳定版本将安装包apache-tomcat-9.0.16.tar.gz上传到/root目录下

##将安装包移动 Tomcat 目录到/usr/local 下#
[root@localhost ~]# cd /opt
[root@localhost ~]# tar xzvf apache-tomcat-9.0.16.tar.gz
[root@localhost ~]# mv apache-tomcat-9.0.16 /usr/local/tomcat###优化tomcat###########
ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/##优化后的启动tomcat的方式 ##
[root@localhost ~]# startup.sh                  ###开启
[root@localhost ~]# shutdown.sh              ###关闭[root@localhost ~]# setenforce ?
setenforce: SELinux is disabled[root@localhost ~]# netstat -ntap | grep 8080
tcp6       0      0 :::8080           :::*        LISTEN      15458/java          ##浏览器中输入http://20.0.0.140:8080      ##访问时会出现Tomcat的默认主页

在这里插入图片描述

##优化tomcat启动速度##
第一次启动查看日志会发现 Tomcat 启动很慢,默认情况下都需要几十秒,可以修改jdk参数进行改。
[root@localhost ~]# vi /usr/java/jdk1.8.0 201-amd64jre/lib/security/java.security
securerandom.source=file:/dev/urandom##关闭tomcat##
[root@localhost ~]# shutdown.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar##启动tomcat##
[root@localhost ~1# startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

虚拟主机配置

可能有时候公司会有多个项目需要运行,那么肯定不可能是一台服务器上运行多个
Tomcat服务,这样会消耗太多的系统资源。此时,就需要使用到Tomcat虚拟主机。

现在新增两个域名 www.zzt.com 和 www.accp.com ,希望通过这两个域名访问到不同的项目内容。

(1)第一步,创建zzt 和 accp 项目目录和文件

#因为识别的是java的文件形式,所以尽量定义jsp的文件,jsp文件可以写一些jsp语言[root@localhost ~]# mkdir /usr/local/tomcat/webapps/zzt
[root@localhost ~]# echo "This is zzt page\!" > /usr/local/tomcat/webapps/zzt/index.jsp
[root@localhost ~]# mkdir /usr/local/tomcat/webapps/accp
[root@localhost ~]# echo "This is accp page\!" > /usr/local/tomcat/webapps/accp/index.jsp

(2)修改配置文件

[root@localhost ~]# vi /usr/local/tomcat/conf/server.xml<Host name="www.zzt.com" appBase="/usr/local/tomcat/webapps"unpackWARs="true" autoDeploy="true" xmlValidation="false"xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/zzt"path="" reloadable="true" /></Host><Host name="www.accp.com" appBase="/usr/local/tomcat/webapps"unpackWARs="true" autoDeploy="true" xmlValidation="false"xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/accp"path="" reloadable="true" /></Host>[root@localhost ~]# shutdown.sh
[root@localhost ~]# startup.sh          
#这两步相当于重启

#####修改的位置:原来的删除,在原位置修改

命令 :解释:
Host name域名
appBase工作目录存放位置
unpackWARs我是否即时更新War包
autoDeploy是否用auto支持自动部署(当你把资源写入webapps,是否即时生效)
xmlValidation是否支持xml的文件当中的验证
xmlNamespaceAware是否对xml当中的命令空间进行启用
false关闭 为什么要关闭验证:因为验证格式浪费时间,一般配置文件写对就对,不对也不提示,所以浪费
Context docBase你的站点存在目录
path=""设置为空:去加载它的默认类,而不是指定,因为java中有很多class文件,
reloadable进行重新加载内容页面的功能,比如你在主页改东西,改完立即生效

(3)验证

##更改hosts文件##  C:\Windows\System32\drivers\etc        改hosts文件
20.0.0.140	www.zzt.com	www.accp.com
##测试网页#
1、使用浏览器访问 http://www.zzt.com:8080 
1、使用浏览器访问 http://www.accp.com:8080


在这里插入图片描述


http://chatgpt.dhexx.cn/article/XGTMju6Z.shtml

相关文章

Tomcat基础详解

一、Tomcat目录介绍 bin&#xff1a; 专门用来存放Tomcat服务器的可执行程序 conf&#xff1a; 专门用来存放Tomcat服务器的配置文件 lib&#xff1a; 专门用来存放Tomcat服务器的jar包 logs&#xff1a; 专门用来存放Tomcat服务器运行时输出的日志信息 temp&#xff1a; 专门…

tomcat目录介绍

这里以apache-tomcat-8.5.69为例&#xff0c;目录结构如下&#xff1a; 一共有bin&#xff0c;conf&#xff0c;lib&#xff0c;logs&#xff0c;temp&#xff0c;webapps&#xff0c;work&#xff0c; 一共7个文件夹&#xff0c;下面来对它们分别进行介绍&#xff1a; &#…

tomcat介绍与使用

tomcat介绍与使用 web服务器 web服务器是运行及发布web应用的容器&#xff0c;只有将开发的web项目放置到该容器中&#xff0c;才能使网络中的所有用户通过浏览器进行访问。常见的web服务器如下&#xff1a; Tomcat&#xff1a;主流的web服务器之一&#xff0c;适合初学者使用…

Tomcat详解

Tomcat详解 1.简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器。 性质&#xff1a;Java web服务器 2.安装Tomcat Tomcat官网点此跳转 进入官网&#xff0c;根据自己的电脑版本在核心文件下选择相应的压缩包下载&#xff0c;Li…

Tomcat详细介绍和使用总结

文章目录 Tomcat 介绍Tomcat作为Servlet容器的基本功能Tomcat的组成结构Tomcat的工作模式Tomcat 版本 Tomcat 安装和配置安装配置启动与关闭Tomcat的运行脚本 Oracle公司现在作为Java语言的开发和发布者&#xff0c;是当仁不让的标准接口的制定者。Oracle公司不仅制定了Web应用…

Tomcat 介绍与使用

文章目录 1.1 Tomcat介绍1.1.1 关于服务器1.1.2 Tomcat下载与安装1.1.3 Tomcat各版本所需支持1.1.4 Tomcat目录结构详解 1.2 Tomcat基本使用1.2.1 Tomcat启动和停止及问题分析解决1&#xff09;启动和停止2&#xff09;启动时问题 1.2.2 IDEA集成Tomcat服务器 1.1 Tomcat介绍 …

TOMCAT介绍--自定义配置Host

TOMCAT介绍 1、服务器概述1.1、基本概念1.1.1、servle容器1.1.2、web容器1.1.3、web服务器 2.1、常见的服务器2.1.1、webLogic2.1.2、WebSphere2.1.3、Tomcat 2、Tomcat基本概念2.1概述2.2、虚拟主机2.3、web应用2.4、DNS服务器2.5、Hosts文件 3、tomcat核心配置3.1、配置虚拟主…

【JavaWeb】之Tomcat介绍、安装与使用

【JavaWeb】Tomcat 前言一、Tomcat简介1.什么是Tomcat2.其他常用Web服务器 二、Tomcat安装1.下载Tomcat2.配置环境变量 三、Tomcat使用1.启动与关闭Tomcat2.修改Tomcat的端口号和主机名称3.使用IDEA搭建Web开发环境4.在Tomcat中部署web项目 四、Web项目目录结构五、网站访问流程…

tomcat详细介绍

tomcat是java语言编写的软件 JVM是java虚拟机的缩写 java虚拟机本质就是一个程序&#xff0c;当它在命令行上启动的时候&#xff0c;就开始执行保存在某字节码文件中的指令。 java语言的可移植性正是建立在java虚拟机的基础上。任何平台只要装有针对该平台的java虚拟机&#xf…

不同转子磁链观测器观测性能比较

导读&#xff1a;本期文章主要是介绍电压型磁链观测器和电流型磁链观测器。两种磁链观测器运用到异步电机矢量控制中&#xff0c;外环磁链环用磁链观测器形成闭环&#xff0c;分析电压型和电流型磁链观测器的观测性能。 如果需要文章中的仿真模型&#xff0c;关注微信公众号&a…

永磁同步电机(PMSM)的转子结构剖析

永磁同步电机的转子包括永磁体、转子铁芯、转轴、轴承等。 具体来说&#xff0c;根据永磁体在转子铁芯中的位置可以分为表面式和内置式PMSM。 其中表面式PMSM转子结构又分为&#xff1a;表贴式和插入式。 内置式PMSM转子磁路结构分为&#xff1a;径向式、切向式和混合式。 …

制作种子怎么上传服务器,怎么制作BT种子 使用BitComet制作BT种子文件教程

类型:下载工具大小:17.5M语言:中文 评分:7.1 标签: 立即下载 使用BitComet制作torrent文件 打开torrent制作对话框 方法一:拖放要制作种子的文件或目录到BitComet 主窗口或悬浮窗 方法二:BitComet“主菜单”→“文件(F)”→“制作Torrent文件(M)” 弹出 制作torrent文件…

怎样把文件转成bt文件?

第一步&#xff1a; 在制作种子之前&#xff0c;先要把需要做&#xff1a;种的文件放于同一个文件夹中。然后打开BitComet&#xff0c;在"文件"菜单中选择"制作Torrent文件"选项&#xff0c;界面如图1所示. 传送门&#xff1a;http://www.bitcomet.com/en/…

TLE5012B磁编码器原理及优点,径向充磁磁铁的安装。AS5047、AS5048、AS5600、TLE5012、MA730

磁编码器以其独特的优点&#xff0c;在近两年的产品应用上十分流行。它体积小巧、安装方便、分辨率高、较光电编码器成本更低、不受灰尘油渍影响、可非接触安装、便于与电机集成一体实现伺服控制。相较于光电编码器&#xff0c;磁编码器的寿命几乎无限长&#xff0c;没有红外二…

使用Python3将BT种子转磁力链接

闲着没事&#xff0c;写了个小爬虫&#xff0c;爬了5万多BT种子。 5万多种子有近3个G的大小&#xff0c;开打文件夹巨卡&#xff0c;就想把种子转成磁力&#xff0c;这样&#xff0c;5万多种子也就一个TXT文件就可以存下了。 先网上找找别人是怎么干的&#xff0c; 发现都是…

种子文件转成为磁力链接 下载BT磁力转换小工具

可以将BT种子文件转成磁力链接&#xff0c;相信很多很多朋友都需要用到&#xff0c;毕竟种子是已附件文件形式存在的&#xff0c;还需要服务器存放&#xff0c;并且下载也需要 BT Tracker &#xff0c;现在的问题是&#xff0c;越来越多的服务器被干掉了&#xff0c;电驴的服务…

html怎么比较时间,比较时间大小的方法

java 日期怎么比较大小? 例子&#xff1a; String beginTimenew String("2017-06-09 10:22:22");String endTimenew String("2017-05-08 11:22:22"); 直接用Date自带方法before()和after()比较 SimpleDateFormat df new SimpleDateFormat("yyyy-MM-…

js 比较时间大小

reference: http://lichengyezi.iteye.com/blog/562786 Js代码 //var yourtimedocument.getElementById(begin_time).value; var yourtime2010-12-10 11:12; yourtime yourtime.replace("-","/");//替换字符&#xff0c;变成标准格式 var d2new…

用js比较时间大小

开发工具与关键技术&#xff1a;Visual Studio、js 作者&#xff1a;幻奏 撰写时间&#xff1a;2019.7.17对比时间的大小在很多项目里面都有用到&#xff0c;刚开始我还不会怎样比较时间的大小&#xff0c;后来上了老师的课之后&#xff0c;我才知道怎样比较时间的大小。 比较时…

Google play ASO 关键字指南

一篇 Google play ASO 入门指南&#xff1a; 译文一篇&#xff0c; 原文地址&#xff1a; https://www.apptamin.com/blog/aso-google-play-app-optimization/ 第一次在填写 Google play 简短说明和应用描述的时候你会感觉自己是无助的&#xff0c; 因为你只有很少的时间但是…