如何理解tomcat的server.xml中host、context的标签配置

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

              网上有很多tomcat目录下server.xml的配置的文章,但是对于初学者来说,如何理解host的标签的配置内容确实一下转不过弯。至少本人就是这个傻样。

    我希望我能帮助一些初学者去理解。先了解配置步骤,再理解配置的目的。

           首先,host标签的意思,根据大家的普遍意思,它表示“虚拟主机”的意思。而虚拟主机在我理解就是实际主机IP经过DNS解析后的普通文字。

         

   
<!--server.xml中host的示例配置如下-->

 <Host appBase="D:\test" autoDeploy="true" name="www.test.com" unpackWARs="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->
        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>
          
          
           <Context docBase="index" path="" reloadable="true" />
<Context docBase="E:\test\app2" path="/app2" reloadable="true" />
          <Context docBase="app3" path="/app3" reloadable="true" source="org.eclipse.jst.jee.server:download"/>

 </Host>


        
各个标签的意义:  
  
appBase:顾名思义,就是程序基地的意思,也是是存放应用程序的路径,类似于tomcat默认的webapps,当自定义host标签时,这个值是可以自定义的绝对路径

aotuDeploy:是否设置程序自动装载。不多解释

name:你的主机名,根据需要任意命名。

unpachWARs:是否自动解压war包。true值时,appdase下打成war包的项目会在tomcat启动时自动解压

Context:配置上下文,也就是对应主机下的具体子项目。
         docBase指定项目的位置,可以是相对appBase的路径,也可以是绝对路径。如果使用相对appBase路径的位置,则直接写应用文件夹名字即可;
                否则应该写绝对位置,如:E:\test\app1
path:设置该项目访问的路径名,如:/app1 .如果path为""--即空字符串,则访问该主机时默认访问该path所在的context元素下docBase所指定的项目,
path值为""的context只能有一个。
        source:没有深究,大概意思应该是来源于某个ide。






         了解完上诉意思之后,就可以配置了。

        步骤1配置tomcat安装目录下的conf目录下的server.xml文件,直接按照上诉说明配置,保存即可。

        步骤2:在C:\Windows\System32\drivers\etc 路径下找到名为hosts的文件,注意不是hosts.txt,是无后缀名的hosts。

                      用记事本打开,在最后一行添加,    域名(主机名)-------ip的映射,如,127.0.0.1       www.test.com   ,保存。

                     保存不了? ,那是因为你的权限不够,参考: http://jingyan.baidu.com/article/624e7459b194f134e8ba5a8e.html

                        注意:映射名应该与之前配置serverxml文件中的host配置中的name值一致,否则配置无效; 行首不能有#,其代表注释。

         完成以后,如果按示例配置,即可通过主机名 www.test.com访问了。

                          www.test.com:8080:访问index项目

                         www.test.com:8080/app2:访问app2项目

                         www.test.com:8080/app3:访问app3项目

               PS: 了解映射:      127.0.0.1(映射前)-------------ip地址不好记----》dns--(本地或英特网)域名解析设备映射--------------------www.test.com(映射后)

                    

        总结:

        host是什么:

             多个子项目组成的大项目,他是一个功能完整、能实现实际业务完整性的项目,此时需要使用一个主机这样的逻辑单元来管理。显像的说,我希望这些业务由一台电脑(假设)来完成,此时这样的电脑就叫主机,这个主机的标识就是主机名---域名。比如淘宝,他可以买东西、买东西,浏览东西,这些完整的实际业务的完成,实际可以简单的理解为通过 www.taobao.com来完成,也可以叫这台主机为www.taobao.com。

         什么时候要配置多个host: 

                  开发时可以用来测试;上线时可以分离完整的实际业务,方便管理。如:淘宝、支付宝的分离,他们都有完整(是否完整由人自定义)的业务功能。

                         

         



          


Tomcat-Host-Context配置 描述了TomcatHostContext组件的相关配置及对应Tomcat的启动和访问问题 立即下载

相关推荐

C/C++关于VScode报错“终端将被任务重用,按任意键关闭”的解决方案

这其实不是一种报错,有这个提示的原因是本地端口是被共享的,所以必须关闭一个进程才能执行另一个,只需要对 tasks.json文件做一些修改即可。 报错时候 此时的tasks.json为: { "version": "2.0.0", "command": "g++", "args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}.exe"], // 编译命令参数 "problemMatche

Jerry Man的博客 6399

TomcatHOST标签案例理解多域名设置(Windows版)

概述: 刚学习到Tomcatserver.xml配置文件Host设置相关东西,不怎么理解,去网上也找了好多,大多数都是配置片段,并没法验证正确。还有是linux的配置。 1、理清概念 一个tomcat能对应多个域名,怎么实现了呢? 平时输入www.baidu.com 或者baidu都可以连接到百度首页,它怎么做到的,这里不得说DNS(域名解析器),简单理解将域名与ip进行对应。那么这个对应

往前的娘娘 4254

Windows下构建ImGui.Net

工具 Visual Studio 2017 操作 下载项目 git clone https://github.com/mellinoe/ImGui.NET.git 编译 右键以下两个项目并调试: ImGui.NET.SampleProgram ImGui.NET.SampleProgram.XNA Error fix 中间遇到一些问题: SDK版本不对 去微软官网下载安装对应版本 由于设置了代理被远程服务器拒绝连接 关闭代理(也许在环境变量中) nuget源无对应资源,404 NOT FOUN

jojozym的博客 1464

Tomcatserver.xmlHostContext的关系,以及work文件夹作用

Tomcatserver.xmlHostContext的关系,以及work文件夹作用

fight_zzc的博客 1769

tomcatServer.xml详解和Host配置

转自:http://blog.csdn.net/liuxuejin/article/details/9104055 基于以下说法的领悟: 若只配appBase,不配Context 的docBase(appBase和docBase二选一就可以了),则appBase的每个文件夹里都代表一个应用,每个应用都必须放ROOT文件夹,ROOT里则包含web所有文件,如图:

klx502的专栏 4万+

Tomcat启动时Host标签Context标签的处理导致程序部署多次

在生产环境中,我们一般会有如下类似的配置

来啊 快活啊 6737

tomcat server.xml文件以及虚拟主机的解释(精华~)

转自:http://blog.csdn.net/liuxuejin/article/details/9104055   基于以下说法的领悟: 若只配appBase,不配Context 的docBase(appBase和docBase二选一就可以了),则appBase的每个文件夹里都代表一个应用,每个应用都必须放ROOT文件夹,ROOT里则包含web所有文件,如图:   &lt;hos...

xu282934741的博客 716

tomcat端口修改以及端口号不生效处理以及server.xml 配置详解、请求过程

启动多个tomcat时就要修改各个tomcat配置文件中的端口号,每个tomcat下conf/server.xml最好3个端口都修改 。 第一处: <Server port="8006" shutdown="SHUTDOWN"> --修改成不重复的端口号 第二处,port修改成目标端口,redirectPort也要修改: <Connector port=...

kingAndwang的博客 6520

Tomcatserver.xml配置详解

要开启Web应用的自动部署,需要配置所在的虚拟主机;但是,需要注意的是,在自动部署场景下(配置文件位于xmlBase中),不能指定path属性,path属性由配置文件的文件名、WAR文件的文件名或应用目录的名称自动推导出来。xmlBase属性指定Web应用的XML配置文件所在的目录,默认值为conf/<engine_name>/<host_name>,例如第一部分的例子中,主机localhostxmlBase的默认值是$TOMCAT_HOME/conf/Catalina/localhost

m0_74825614的博客 982

Tomcat核心配置文件server.xml说明

tomcat作为服务器的话,其核心配置文件是conf/server.xml,其中包含了Servlet容器的相关配置,即Catalina的配置信息。

不会骑摩托的程序员不是好的摄影师 899

Tomcat 核⼼配置 之 Service标签

标签⽤于创建 Service 实例,默认使⽤ org.apache.catalina.core.StandardService。 默认情况下,Tomcat 仅指定了Service 的名称, 值为 “Catalina”。 <!-- Service ⼦标签为 : Listener、Executor、Connector、Engine, 其中: Listener ⽤于为Service添加⽣命周期监听器, Executor ⽤于配置Service 共享线程池, Connector ⽤于配置Servic

qq_36194388的博客 541

server.xml-浅入Tomcat配置文件

因为工作中有在Linux服务器部署项目的需要,所以也大概了解如何配置Tomcat端口号,如何配置项目路径,以及如何避免两种情况的内存溢出。但是关于关键配置文件——server.xml,还是不甚了解,这篇总结,浅入了解一些server.xml文件。 先上文件内容,这是Tomcat7的标准配置...

chuanwen0451的博客 107

tomcat 配置外部Web应用程序路径

第一种方法: server.xml文件中进行配置。 在Host标签内部加入如下标签代码: <Context path="/上下文路径" docBase="Web应用程序的绝对路径" reloadable="true"> 其中上下文路径你是访问的路径,web应用程序的绝对路径是你应用程序在主机上的存储路径 第二种方法: 也可以在conf\Catalina\localhost文件夹下,新建一个“上下文路径”.xml文件(名字自己随意定义),然后在这个xml中加入如下代码(不用符合x.

technologyleader的专栏 1290

调试笔记 — Redis 消息队列发布信息被消费者重复订阅多次牵扯到的 Tomcat 配置问题 [#00001]

最近在项目中发现了一个奇葩的 BUG ,当用户调用后台时,后台向消息队列中发布一条消息,这条消息会被监听器(消费者)监听到,有趣的事情就在这里,此时由于只发送了一条消息,照理说监听器应该只会触发一次,但是却总是订阅2次(有的客户服务器启动甚至会初始化好几次,不知具体原因),然后就不会再订阅了,当时向消息队列发布信息我是使用的 RedisTemplate 里面的 convertAndSend(chan

fruitwing的博客 1万+

Tomcat9下war包启动部署

1、将项目打成WAR包放在Tomcat的webapps目录下 2、在Tomcat的安装目录的conf下找到server.xml的文件,如:D:apache-tomcat-9.0.8confserver.xml 3、在Host标签里边添加 <Host name="localhost" appBase="" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="myproject" reloadable="true

m0_67394360的博客 648

tomcatserver.xml详解

文章目录1 概述1.1 Server元素1.1.1 tomcat部署多应用2 server.xml文件2.1 配置`Server`元素2.2 配置Service元素2.3 配置Engine元素2.4 配置Host元素2.5 配置Context元素2.6 配置Connector元素2.6.1 HttpConnector2.6.2 JKConnector 1 概述 Tomcat服务器是由一系列可配置...

上善若泪 1万+

Tomcat server.xml配置文件介绍

标签:一、server.xml文件介绍1.server.xml作用    Server.xml配置文件用于对整个容器进行相关的配置。2.server.xml文件的配置元素列表<Server>:是整个配置文件的根元素。表示整个Catalina容器。<Connector>:连接器,负责接收客户的请求,以及向...

梁同学与Android 2974

Tomcatserver.xml配置文件解析

server.xml是我们配置和优化Tomcat时最重要的文件,Tomcat的几大核心组件都在这里配置,它上手容易,即食即用,见效快。对想要理解Tomcat原理的读者来说就更必不可少了,下面是它的标签结构。

Roderick2015的博客 746
上一篇: 使用lucene4.6进行排序时报错:java.lang.IllegalArgumentException: after must be a FieldDoc; got doc=411 score=1
下一篇: sql server如何将高版本的数据迁移到低版本中。解决数据库 'XX' 的版本为 655,无法打开。此服务器支持 611 版及...
Jasonfong436
博客等级 码龄15年 2粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值