web项目部署到tomcat特定路径、端口(配置server.xml文件)

我的主页: isfantasy.com

前言

本文将解决以下问题:

  • 如何将Linux下任意位置的项目(虚拟目录)部署到tomcat?
  • 如何将项目部署到服务器特定端口?
  • 如何在一个服务器上部署多个web应用?

本例中系统:Linux version 3.10.0-514.el7.x86_64
tomcat版本:8.0.30.0
jdk 版本:jdk1.8.0


将Linux下任意目录部署到tomcat

方法简述:在内增加元素
例:

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="/root/tomcat/apache-tomcat-8.0.30/fantasy" debug="0"  privileged="true" reloadable="true"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

解释:

  1. context元素:每个Context元素代表了运行在虚拟主机上的单个Web应用
  2. docBase 属性:自己web应用的路径,可以是相对路径也可以是绝对路径,相对路径是相对于host的webapps,绝对路径如上例。
  3. path 属性:即要建立的虚拟目录,是tomcat访问这个应用的URL路径,如果为空则代表访问路径为web应用的根目录,访问路径:http://ip:port。如果非空则访问路径:http://ip:port/path。
  4. reloadable:如果这个属性设为true,Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件的改变,如果监视到有class文件被更新,服务器自动重新加载Web应用,这样我们可以在不重启tomcat的情况下改变应用程序

将项目部署到服务器的特定端口

**方法简述:**修改Connector 的 port 属性,访问方式同上例
例:

<Connector port="2727" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8445" />

解释:

  1. port 属性:指定web应用端口(暴露一个socket端口来accept客户端的链接)
  2. protocol 属性:使用的网络协议,表示tomcat使用何种方式来接受和处理client端请求,“HTTP/1.1"是默认值,等效于"org.apache.coyote.http11.Http11Protocol”;
  3. connectionTimeout 属性:当client与tomcat建立连接之后,在"connectionTimeout"时间之内,仍然没有得到client的请求数据,此时连接将会被断开.此值的设定需要考虑到网络稳定型,同时也有性能的考虑.它和tcp的配置选项中的"socket_timeout"仍有区别,connectionTimeout只会在链接建立之后,得到client发送http-request信息前有效.

在服务器上部署多个web应用

**方法简述:**添加 service 元素
例:

<Service name="Catalina2">
    <Connector port="2727" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8445" />
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8445" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="fantasy" unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="/root/tomcat/apache-tomcat-8.0.30/fantasy" debug="0" privileged="true" reloadable="true"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>

解释:

  1. 一个 service 代表一个web应用实例
  2. 同一个 server.xml 文件中每个 service 的 name 值不能相同
  3. 同一个 server.xml 文件中每个 service 的 redirectPort 、port 值不能相同

完整server.xml配置

<?xml version="1.0" encoding="UTF-8"?>

<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>
  <Service name="Catalina">
    <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="/root/tomcat/apache-tomcat-8.0.30/webapps/ROOT" debug="0"  privileged="true" reloadable="true"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>
   <Service name="Catalina2">
    <Connector port="2727" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8445" />
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8445" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="fantasy" unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="/root/tomcat/apache-tomcat-8.0.30/fantasy" debug="0" privileged="true" reloadable="true"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>
</Server>

使用以上方法基本上可以满足日常开发调试需求. 个人浅见,有问题欢迎指出

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值