tomcat虚拟主机_动力节点Java学院整理
发布时间 - 2026-01-11 02:33:00 点击率:次对于Tomcat服务器,可以放置多个网站(多个web应用),这就是讲配置多个虚拟主机,可以看成好像有多个主机,而每个主机上有一个web应用。如同之前的文章所说的,对于Tomcat服务器来讲,在server.xml文件中,一个<Host>标签就代表着一台虚拟主机,之前的文章所用的都是默认的虚拟主机,这个在server.xml文件中是这样定义的:
<Host name="localhost" appBase="webapps" autoDeploy="true" unpackWARs="true"> ... </Host>
可以看到这个已有的虚拟主机的名称(“localhost”)正好是浏览器访问本机的回环地址的主机名,appBase属性是存放web应用的目录,autoDeploy指是否自动部署,unpackWARs指是否自动解压war包,如果为false则不解压直接从war包中运行应用程序。
而我们想配置多个虚拟主机也是这样,在server.xml文件中添加<Host>标签,指定name属性和appBase属性之后,再添加web应用。
通常配置虚拟主机方式与网站域名比较相关,而我没有有域名的网址,因此直接修改hosts文件将域名重定向作为学习在服务器中虚拟主机的添加和配置。
修改Tomcat服务器中的server.xml文件,添加<Host>标签,name属性采取“域名”的方式,并将该虚拟主机存放web应用的目录【fjdingsd】放在非Tomcat所在的【D】盘下:
<Host name="www.fjdingsd.com" appBase="D:\fjdingsd" autoDeploy="true" unpackWARs="true"> </Host>
【news】目录中:
当在server.xml中添加好虚拟主机之后,直接将web应用放置在对应的虚拟主机存放web应用目录,注意,这里是由<Host>标签中appBase定义的D盘下【fjdingsd】目录,而我的web应用【news】就应该放这其中,在我的web应用所在目录中有自定义的home.html文件。
现在就是需要将定义的虚拟主机名和ip绑定,因为没有向DNS服务器注册,所以我就使用hosts文件中将我的虚拟主机名与本机ip地址绑定:
这样启动Tomcat服务器,在浏览器中输入,可以看到:
这样就配置好了一个虚拟主机,并且在这虚拟主机中还有web应用。
这里只是小试一下对Tomcat服务器的虚拟主机配置,而如果想真正让外界访问我们配置的虚拟主机(网站),应该向DNS服务器注册域名才行。
不管在Tomcat服务器中添加了多少个虚拟主机,最终都是转为ip地址向服务器访问。这里就会有一个问题,如果每个web应用都设置了首页,而又不在浏览器中输入域名,而是直接通过ip地址打开,那么服务器怎么知道应该是去哪个虚拟主机寻求资源呢?
答案就在Tomcat服务器的引擎<Engine>上,由server.xml文件中的<Engine>标签定义了Tomcat服务器的默认虚拟主机:
<Engine defaultHost="localhost" name="Catalina"> ... <Host name="localhost" ...> </Host> <Host name="www.fjdingsd.com" ...> </Host> ... </Engine>
因此如果我想改变Tomcat服务器的默认虚拟主机,就修改<Engine>标签中的“defaultHost”属性。
================================================================
如果要将开发好的web应用部署到远程服务器中,可以将web应用进行压缩成war格式,再进行传输,在Tomcat服务器运行的过程中,如果在其存放web应用的目录中检测到新增的war包,则会进行自动解压并部署(<Host>中的unpackWARs属性和autoDeploy属性)。这种方式最适合向远程服务器进行新的web应用传递并管理。
那么如何对开发好的web应用进行war打包呢:
在cmd中键入 “jar -cvf 应用名.war 应用名”。
如我的web应用为D盘下【fjdingsd】目录中的【news】目录,那么我在cmd中就该这么输入:jar -cvf news.war news
并得到了war文件:
然后将这个news.war往Tomcat的【webapps】目录中一放,过几秒后Tomcat就会对其自动解压,Tomcat服务器一定要先打开才会看到自动解压的过程。
过3、4秒后:
如果在Tomcat运行的过程中,将已经自动解压的war包删除,则过几秒Tomcat也会自动将解压后的web应用删除,这点请注意。
如果是在Tomcat服务器未启动之前,将war包放入【webapps】目录中,那么Tomcat启动后会自动解压并部署。
如果在是Tomcat解压的war包,而在将Tomcat关闭后再删除war包,那么在此启动Tomcat后之前由war包解压出来的web应用不会被删除。
Tomcat的体系结构
Tomcat的体系结构可以从其最重要的server.xml文件中进行结构分析,下图是一张Tomcat的体系结构图:
结合server.xml文件可以看到:
Tomcat启动后,也就是服务器(<Server>标签),启动后也会启动一些监听器(<Listener>)和一些全局命名资源(<GlobalNamingResources>)。
除了服务器(<Server>标签)被启动后,还会启动“服务”(<Service>),正如在cmd中键入的“services.msc”的那种。
在服务(<Service>)下会有各种连接器(<Connector>),如上面体系结构图所示,其中和浏览器打交道的连接器(<Connector>)定义了连接协议(protocol),连接端口(port),连接超时(connectionTimeout)等等属性,当然还要别的用途的连接器。
在服务(<Service>)下除了各种连接器(<Connector>),还有一个引擎(<Engine>),当浏览器将一些请求发来时就通过连接器(<Connector>)交给引擎(<Engine>),引擎(<Engine>)中可以包含一个或多个虚拟主机(<Host>),而引擎也规定了哪个虚拟主机是默认访问的。
引擎(<Engine>)通过寻找指定的虚拟主机(<Host>)将请求交给它,然后由虚拟主机(<Host>)来寻找是哪个web应用,虚拟主机(<Host>)定义了浏览器需输入的主机名称、web应用存放的位置,和别的一些属性等等
而至于何种web应用就要看采用哪种虚拟目录映射了,如果是添加<Context>,那么一个<Context>标签就代表一个web应用
或者是直接将web应用所在目录放在<Host>标签指定的路径,那么就没有<Context>标签来代表该web应用
# tomcat虚拟主机
# tomcat中虚拟主机及web应用程序的配置方法
# Linux上tomcat的虚拟主机IP映射配置(图片服务器)
# Tomcat配置虚拟主机的实现示例
# 虚拟主机
# 多个
# 器中
# 可以看到
# 都是
# 目录中
# 放在
# 也会
# 结构图
# 本机
# 绑定
# 几秒
# 过程中
# 我想
# 我就
# 就会
# 是在
# 会有
# 我在
# 好了
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能
如何在建站之星绑定自定义域名?
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
Laravel如何实现一对一模型关联?(Eloquent示例)
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
免费网站制作appp,免费制作app哪个平台好?
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
如何在腾讯云服务器上快速搭建个人网站?
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
Laravel定时任务怎么设置_Laravel Crontab调度器配置
如何快速搭建个人网站并优化SEO?
如何将凡科建站内容保存为本地文件?
如何在建站之星网店版论坛获取技术支持?
西安专业网站制作公司有哪些,陕西省建行官方网站?
javascript中闭包概念与用法深入理解
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
微信小程序 配置文件详细介绍
零基础网站服务器架设实战:轻量应用与域名解析配置指南
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
Laravel如何实现用户注册和登录?(Auth脚手架指南)
JavaScript如何操作视频_媒体API怎么控制播放
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
网站图片在线制作软件,怎么在图片上做链接?
专业商城网站制作公司有哪些,pi商城官网是哪个?
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
如何安全更换建站之星模板并保留数据?
如何在万网利用已有域名快速建站?
Laravel如何使用查询构建器?(Query Builder高级用法)
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
Android使用GridView实现日历的简单功能
如何续费美橙建站之星域名及服务?
如何制作一个表白网站视频,关于勇敢表白的小标题?
Laravel distinct去重查询_Laravel Eloquent去重方法
如何在阿里云香港服务器快速搭建网站?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?

