tomcat配置server.xml文件

一、配置多个域名对应多个项目

之前使用Tomcat配置server.xml的时候只是修改了端口号,其实也只会修改个端口号……
其实我知道这个server文件里有很多非常有用的配置,比如今天想要记录的配置多个host节点,实现多个域名分别对应着多个不同的项目。

<Host name="localhost"  appBase="webapps">
    <Context path="" docBase="\ROOT" /> 
</Host>

<Host name="www.mydomain1.com" appBase="webapps">
    <Context path="" docBase="WeChat"/>
</Host>

<Host name="www.mydomain2.com" appBase="webapps">
    <Context path="" docBase="vote"/>
</Host>

这里用到的两个域名(www.mydomain1.com、www.mydomain2.com)我已经在本地做了dns解析,把域名解析到了本地IP127.0.0.1。经过上面的配置我们已经实现了这样的功能:在浏览器输入www.mydomain1.com访问的是WeChat项目,输入www.mydomain2.com访问的是vote项目。这两个项目都放在Tomcat文件夹下的webapps目录下。
本来以为这样配置就完全没有问题了,但我还是经验太少了,这样配置的结果就是每个项目都会被多次部署。

二、解决项目多次部署问题

本以为项目多次部署没什么问题,但从Tomcat ROOT查看到的内存使用情况来看,多次加载项目还是增加了内存的消耗的,而且这种多次加载的事儿在我这是不允许发生的……

  • 原因

Host 节点:
  代表一个虚拟主机,每个虚拟主机和某个网络域名(Domain Name)相匹配。每个虚拟主机下都可以部署(deploy)一个或者多个Web 应用程序(Web Application),每个Web 应用程序对应于一个Context,有一个Context path。当虚拟主机获得一个请求时,将把该请求匹配到某个Context上,然后把该请求交给该Context来处理。匹配的方法是“最长匹配”,一个path=”“的Context将成为该虚拟主机的默认Context。所有无法和其它Context的路径名匹配的请求都将最终和该默认Context匹配。

host节点的appBase,这个目录表示:
1 这个目录下面的子目录将自动被部署为应用。
2 这个目录下面的.war文件将被自动解压缩并部署为应用

这样造成的结果就是每个host读取项目的时候都会扫描到appBase中的项目并自动部署,

Context节点:
  一个Context对应于一个Web应用程序,一个Web应用程序由一个或者多个Servlet组成。

Context 在创建的时候又读取一次项目的文件夹,这一个项目又被部署一次(不知道真实情况是不是这样,目前我是这样理解的)

  • 解决
    既然造成项目多次部署的原因是多次读取了项目所在的文件夹,那我给他换一个路径存放项目不就行了-_-
    <Host appBase="webapps" name="localhost">
        <Context docBase="\ROOT" path=""/>  
    </Host>
    <Host appBase="webapps" name="www.mydomain1.com">
        <Context docBase="D:\mywebapp\WeChat" path=""/>
    </Host> 
    <Host appBase="webapps" name="www.mydomain2.com">
        <Context docBase="D:\mywebapp\vote" path=""/>
    </Host>

自己写的项目单独拿出来,放在独立的文件夹下,用绝对路径指到项目地址,这样就不会被多次部署了……
虽然这样解决了问题,但感觉好像有哪里不对啊……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot中,我们通常不需要直接配置Tomcatserver.xml文件。Spring Boot提供了自动配置的功能,它会根据应用程序的需求自动配置Tomcat服务器。 Spring Boot的应用程序可以通过在application.properties或application.yml文件中设置一些属性来配置嵌入式的Tomcat服务器。例如,可以通过设置server.port属性来指定Tomcat服务器的端口号。 如果你需要更详细的配置Tomcat服务器,你可以在Spring Boot应用程序的配置类中创建一个EmbeddedServletContainerCustomizer Bean,并使用它来自定义Tomcat服务器的配置。在此配置类中,你可以设置许多Tomcat服务器的属性,例如连接超时时间、最大线程数等。 在配置Tomcat服务器的server.xml文件方面,由于Spring Boot使用的是嵌入式的Tomcat服务器,实际上并没有直接使用Tomcat服务器的server.xml文件。而是通过Spring Boot的自动配置和属性来实现对Tomcat服务器的配置。 总结起来,配置Spring Boot应用程序的Tomcat服务器,可以通过设置应用程序的属性或创建自定义的配置类来实现,而不需要直接修改Tomcatserver.xml文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [详解Tomcat 配置文件server.xml](https://blog.csdn.net/liliangpin/article/details/125551048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [tomcat学习一:tomcat 目录及配置文件学习 server.xml 等](https://blog.csdn.net/qq_40036754/article/details/127730199)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值