Tomcat 三种简单网站部署方式

news2024/11/27 12:46:07

Tomcat 服务部署

1、隐式部署

为什么可以隐式部署,是因为 Tomcat 配置了默认主机 webapps,在 Engine 下你也可以配置其他主机(要保证你配置的主机在 ect/host 下有对应关系),但是 appBase 要确保唯一。保证每台主机下资源隔离,不会互相乱窜。如下所示:

提示:这里所说的主机换个说法叫做域名,localhost 是 127.0.0.1 的域名,otherlocalhost 也是 127.0.0.1 的一个域名。

<Server port="8005" shutdown="SHUTDOWN">
    <Service name="Catalina">
    	<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    	<Engine name="Catalina" defaultHost="localhost">
    		<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    		<Host name="otherlocalhost"  appBase="otherHostWeb" unpackWARs="true" autoDeploy="true">
    	</Engine>
	</Service>
</Server>

假设现在我有个网站 MyWeb1,里面有个 abc.html 页面,内容如下:

<h1>Hello World11111!!!</h1>

现在准备把 MyWeb1 部署到 Tomcat 服务器上,可以直接把 MyWeb1 网站丢到默认主机 webapps 下面。如下图示:

在这里插入图片描述

问题:怎么访问 webapps 主机下面的网站呢?

因为 webapps 主机下没有指定 path 访问前缀,所以默认就是 / 前缀。然后你想访问 webapps 下哪个资源文件,直接定位到路径即可,比如:abc.html 页面,访问路径:http://localhost:8080/MyWeb1/abc.html 即可。如果 MyWeb1 网站下有首页 index.html、index.jsp 等存在时,直接访问 http://localhost:8080/MyWeb1 就能够进入首页。同理,访问 webapps 主机下其他网站也是一个道理。

  • 比如 docs 网站,访问路径:http://localhost:8080/docs
  • 比如 manager 网站,访问路径:http://localhost:8080/manager
  • 比如 host-manager 网站,访问路径:http://localhost:8080/host-manager
  • 比如 examples 网站,访问路径:http://localhost:8080/examples

最后提醒下每个网站都会有自己的服务处理类 Servlet,而这些 Servlet 都是通过 WEB-INF/web.xml 集成进来。

隐式部署有点不友好就是必须要把网站应用放到 webapps 主机下(配置一台主机的情况下)。如果这个主机下文件过多,容易出错。

2、显示部署

Server.xml 文件中直接配置 Context 网站应用即可,如下:

<Server port="8005" shutdown="SHUTDOWN">
    <Service name="Catalina">
    	<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    	<Engine name="Catalina" defaultHost="localhost">
    		<Context path="/myWeb1" docBase="/Users/gwm/Downloads/MyWeb1" reloadable="true">
    	</Engine>
	</Service>
</Server>
  • appBase:相当于是一个主机的根目录 /,默认名称叫做 webapps
  • path:在 webapps 主机下会有多个网站,可以通过 path 来进行区分
  • docBasepath 访问网站文件具体目录,比如上面的 abc.html 就在 /Users/gwm/Downloads/MyWeb1 文件目录下。因为 docBase 可以指定网站资源文件位置,所以你就不用将网站再放到之前的 webapps 主机下面。

所以最终访问 abc.html 的路径是:http://localhost:8080/myWeb1/abc.html

3、xml 配置部署

上面显示部署需要修改 Server.xml 全局配置文件。该文件非常重要,一般不要轻易修改,否则启动不了。所以就这里提供了另外一种部署方法,也是最常用的一种方法—xml 配置方式

当你运行一次 Tomcat 之后,Tomcat 会自动在 conf 文件目录下自动生成 /config/Catalina/localhost/ 目录。然后你就可以在这个目录下新建一个 xml 文件。xml 文件名称就是你网站的访问路径。比如新建一个 abc.xml 文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/Users/gwm/Downloads/MyWeb1" reloadable="true"></Context>

警告:这里注意声明 xml 配置时,第一行上面绝对不要有空行。否则这个 xml 文件不生效。

整体目录如下图示:

在这里插入图片描述

最终访问路径:http://localhost:8080/abc/abc.html 推荐使用第三种方式部署服务。修改的文件都是局部文件,不会影响到其他人的部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/166902.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Effective C++条款40:明智而审慎地使用多重继承(Use multiple inheritance judiciously)

Effective C条款40&#xff1a;明智而审慎地使用多重继承&#xff08;Use multiple inheritance judiciously&#xff09;条款40&#xff1a;明智而审慎地使用多重继承1、多重继承的两个阵营2、多重继承中&#xff0c;接口调用的歧义性3、菱形继承与虚(virtual)继承3.1 菱形继承…

注意力FM模型AFM

1. 概述 在CTR预估任务中&#xff0c;对模型特征的探索是一个重要的分支方向&#xff0c;尤其是特征的交叉&#xff0c;从早起的线性模型Logistic Regression开始&#xff0c;研究者在其中加入了人工的交叉特征&#xff0c;对最终的预估效果起到了正向的效果&#xff0c;但是人…

华为MPLS跨域C1方案实验配置

目录 配置接域内IGP路由协议与LDP协议 配置IPv4的BGP邻居 配置PE之间的Vpnv4邻居 配置PE与CE设备对接命令 ASBR上手工为PE地址分配标签 MPLS隧道——跨域解决方案C1、C2讲解_静下心来敲木鱼的博客-CSDN博客_route-policy rr permit node 10 if-match mpls-labelhttps://bl…

IB地理课选课指南,SL还是HL适合呢?

IB地理科的标准级别&#xff08;Standard Level&#xff0c; SL&#xff09;课程跟高级级别&#xff08;Higher Level&#xff0c;HL&#xff09;课程的最大不同处在于&#xff0c;考卷的数量跟题目的数量是不同的。可是&#xff0c;两者之间的教学内容和科目指引&#xff08;S…

二十八、Kubernetes中job详解

1、概述 在kubernetes中&#xff0c;有很多类型的pod控制器&#xff0c;每种都有自己的适合的场景&#xff0c;常见的有下面这些&#xff1a; ReplicationController&#xff1a;比较原始的pod控制器&#xff0c;已经被废弃&#xff0c;由ReplicaSet替代 ReplicaSet&#xff…

CentOS 7 升级安装 Python 3.9 版本

由于 yum install python3 默认安装的 Python 版本较低&#xff0c;现如今有更高版本的 Python 需求&#xff0c;就想用编译安装的方法安装一个较高版本的 Python&#xff0c;顺道记录一下安装过程。 注意&#xff1a;不要卸载自带的 python2&#xff0c;由于 yum 指令需要 pyt…

idea中代码git的版本穿梭Git Rest三种模式详解(soft,mixed,hard)

使用Git进行版本控制开发时难免会遇到回顾的情况&#xff0c;这里来解释下该如何正确的回滚 文章目录1.本地仓库回滚2.远程仓库回滚2.1错误案例2.2正确操作3.代码提交到错误的分支解决4.Git Rest三种模式详解&#xff08;soft,mixed,hard&#xff09;4.1操作演示reset --hard&a…

【论文简述】FlowFormer:A Transformer Architecture for Optical Flow(ECCV 2022)

一、论文简述 1. 第一作者&#xff1a;Zhaoyang Huang、Xiaoyu Shi 2. 发表年份&#xff1a;2022 3. 发表期刊&#xff1a;ECCV 4. 关键词&#xff1a;光流、代价体、Transformer、GRU 5. 探索动机&#xff1a;现有的方法对代价体的信息利用有限。 6. 工作目标&#xff1…

RabbitMQ 部署及配置详解(集群部署)

RabbitMQ 集群是一个或 多个节点&#xff0c;每个节点共享用户、虚拟主机、 队列、交换、绑定、运行时参数和其他分布式状态。一、RabbitMQ 集群可以通过多种方式形成&#xff1a;通过在配置文件中列出群集节点以声明方式以声明方式使用基于 DNS 的发现以声明方式使用 AWS &…

Java中的LinkedList

文章目录前言一、LinkedList的使用1.1 什么是LinkedList1.2 LinkedList的使用1.2.1 LinkedList的构造1.2.2 LinkedList的其他常用方法介绍1.2.3 LinkedList的遍历二、LinkedList的模拟实现三、ArrayList和LinkedList的区别总结前言 上一节中我们讲解了Java中的链表&#xff0c…

vue3.0中echarts实现中图地图的省份切换,并解决多次切换后地图卡死的情况

一、echarts安装及地图的准备 1、安装echarts npm install echarts2、下载china.js等json文件到项目中的文件夹 map的下载地址&#xff1a; 等审核 二、代码说明 <template><div class"center-body"><div class"map" id"map"…

fork函数详解

文章目录fork函数例子详解工作原理GDB 多进程调试fork函数 fork系统调用用于创建一个新进程&#xff0c;称为子进程&#xff0c;它与进程&#xff08;称为系统调用fork的进程&#xff09;同时运行&#xff0c;此进程称为父进程。创建新的子进程后&#xff0c;两个进程将执行fo…

jvm系列(2)--类加载子系统

目录第2章-类加载子系统内存结构概述简图详细图类加载器子系统类加载器ClassLoader角色类加载过程概述加载阶段链接阶段验证(Verify)准备(Prepare)解析(Resolve)初始化阶段类的初始化时机clinit()1&#xff0c;2&#xff0c;3说明4说明5说明6说明类加载器的分类概述虚拟机自带的…

【web安全】——文件上传的绕过方式

作者名&#xff1a;白昼安全主页面链接&#xff1a; 主页传送门创作初心&#xff1a; 舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座右铭…

价值创造链路及经营计划

“价值创造过程最主要的环节是建立链接&#xff0c;北京万柳书院在网上热议&#xff0c;其背后是人与人的大量链接&#xff0c;近期热议的湖南卫视春晚亦如是&#xff0c;这种链接为价值的设计、沟通、传递创造条件&#xff1b;企业以客户为中心设计产品&#xff0c;往大了说是…

C++ string类的初步了解

目录 一. 为什么学习string类&#xff1f; 1.C语言中的字符串 2.string类 二. string类的常用接口说明 1.构造 2.容量 size和length capacity clear empty reserve resize 3.元素访问 operator[] at front、back 4.迭代器 ​编辑begin、end rbegin、rend …

数据结构初阶:排序

本期博客我们来到了初阶数据结构最后一个知识点&#xff1a;排序 排序&#xff0c;我们从小到大就一直在接触&#xff0c;按身高、成绩、学号等等不同的排序我们已经历许多&#xff0c;那么各位是按怎样的方法进行排序的呢&#xff1f; 废话不多说这期博客我们对各种排序方法…

测试开发 | 测试平台开发-前端开发之数据展示与分析

本文节选自霍格沃兹测试学院内部教材测试平台的数据展示与分析&#xff0c;我们主要使用开源工具ECharts来进行数据的展示与分析。ECharts简介与安装ECharts是一款基于JavaScript的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化…

Unity 使用OpenXR和XR Interaction Toolkit 开发 HTCVive(Vive Cosmos)

Unity 使用OpenXR和XR Interaction Toolkit 开发 HTCVive&#xff08;Vive Cosmos&#xff09; 提示&#xff1a;作者是 Unity 2020.3 以上版本做的开发。开发VR程序需要安装 Steam&#xff0c;SteamVR, (Vive Cosmos,需要再安装VIVEPORT,VIVEConsole) OpenXR 控制设备 &#x…

OpenCV(12)-OpenCV的机器学习

OpenCV的机器学习 基本概念 计算机视觉是机器学习的一种应用&#xff0c;而且是最有价的应用 人脸识别 哈尔(Haar)级联方法深度学习方法(DNN) Haar人脸识别方法 哈尔(Haar)级联方法是专门为解决人脸识别而推出的&#xff0c;在深度学习还不流行时&#xff0c;哈尔已可以商…