Tomcat配置项目直接通过http://ip:port访问

Tomcat配置项目直接通过/访问

遇到一个需求:因为这个域名下只部署了这一个项目,用户想直接通过域名来访问这个项目而不是加一层项目地址。

方式一

修改war文件名

  1. 将你的war文件重命名为ROOT.war。部署到Tomcatwebapps目录即可。
  2. 如果已经存在ROOT文件夹,删除它,以便Tomcat自动加解压缩并部署ROOT.war
  3. 启动Tomcat后,项目可以直接通过https://localhost:8080/直接访问。

方式二

修改server.xml文件:在<Host/>添加一个<Context/>并设置pathdocBase

<Context path="/" docBase="../webapps/messenger.war" reloadable="true"/>

或者

<Context path="/" docBase="/messenger" reloadable="true"/>

  • path: 指定Web应用程序的上下文路径,即在URL中访问应用程序的路径。例如,path="/myapp" 将使应用程序在 http://localhost:8080/myapp 上可用。

  • docBase: 指定Web应用程序的根目录,可以是WAR文件的路径或已解压的目录。例如,docBase="/path/to/myapp.war"docBase="/path/to/myapp"

  • reloadable: 指示是否支持应用程序的自动重新加载。设置为 true 表示支持自动重新加载,便于开发时的快速部署。默认值是 false

注意

这种方式webapps下面一个war包可以会生成两个文件夹,一个是ROOT,一个是应用程序的目录。这两个目录下的文件是相同的,也就是**tomcat把这项目加载了两次**,一个是/访问,一个是/应用程序访问的,这两套是相互隔离的。

解决方案

<Context path="/" docBase="${catalina.base}/apps/messenger.war" debug="0" reloadable="true"/>

不把war包放入到webapps中,而是而是通过docBase来指定war的路径,这样tomcat只会在webapps内生成一个ROOT目录。

相关推荐
fthux16 小时前
不必下载整个仓库:GitZip Pro 让 GitHub 文件与文件夹批量下载更简单
前端·chrome·ai·edge·开源·github·firefox
步行cgn1 天前
MyBatis 动态 SQL 完全指南
sql·tomcat·mybatis
SemiTris2 天前
从Controller到Tomcat底层请求链路全解析
java·tomcat
003安全实验室3 天前
【如何在Kali Linux中将Firefox语言切换为中文?】
firefox·kali
程序员良辰3 天前
【TongWeb8】使用 Crontab 定时重启和检测 TongWeb 服务
java·中间件·tomcat
上海云盾商务经理杨杨3 天前
Tomcat 弱配置漏洞渗透实战!批量 getshell 高频漏洞
java·web安全·tomcat
Ai拆代码的曹操4 天前
Dubbo 2.7.5 的线程上下文陷阱:从版本演进看 AllChannelHandler 的设计之痛
前端·dubbo·safari
小张同学a.7 天前
zabbix企业级监控平台3——服务监控与API实战
linux·运维·mysql·nginx·tomcat·zabbix
xxwl58513 天前
数据库后端接口测试报告
spring boot·mysql·tomcat
次次皮15 天前
Linux 下通过 XShell 手动更新 Tomcat 应用并重启
前端·tomcat·jar