热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

tomcat虚拟主机_动力节点Java学院整理

对于Tomcat服务器,可以放置多个网站(多个web应用),这就是讲配置多个虚拟主机,可以看成好像有多个主机,而每个主机上有一个web应用

对于Tomcat服务器,可以放置多个网站(多个web应用),这就是讲配置多个虚拟主机,可以看成好像有多个主机,而每个主机上有一个web应用。如同之前的文章所说的,对于Tomcat服务器来讲,在server.xml文件中,一个标签就代表着一台虚拟主机,之前的文章所用的都是默认的虚拟主机,这个在server.xml文件中是这样定义的:


...

可以看到这个已有的虚拟主机的名称(“localhost”)正好是浏览器访问本机的回环地址的主机名,appBase属性是存放web应用的目录,autoDeploy指是否自动部署,unpackWARs指是否自动解压war包,如果为false则不解压直接从war包中运行应用程序。

  而我们想配置多个虚拟主机也是这样,在server.xml文件中添加标签,指定name属性和appBase属性之后,再添加web应用。

  通常配置虚拟主机方式与网站域名比较相关,而我没有有域名的网址,因此直接修改hosts文件将域名重定向作为学习在服务器中虚拟主机的添加和配置。

  修改Tomcat服务器中的server.xml文件,添加标签,name属性采取“域名”的方式,并将该虚拟主机存放web应用的目录【fjdingsd】放在非Tomcat所在的【D】盘下:


   【news】目录中:  

当在server.xml中添加好虚拟主机之后,直接将web应用放置在对应的虚拟主机存放web应用目录,注意,这里是由标签中appBase定义的D盘下【fjdingsd】目录,而我的web应用【news】就应该放这其中,在我的web应用所在目录中有自定义的home.html文件。

现在就是需要将定义的虚拟主机名和ip绑定,因为没有向DNS服务器注册,所以我就使用hosts文件中将我的虚拟主机名与本机ip地址绑定:  

这样启动Tomcat服务器,在浏览器中输入,可以看到: 

 

这样就配置好了一个虚拟主机,并且在这虚拟主机中还有web应用。

  这里只是小试一下对Tomcat服务器的虚拟主机配置,而如果想真正让外界访问我们配置的虚拟主机(网站),应该向DNS服务器注册域名才行。

  不管在Tomcat服务器中添加了多少个虚拟主机,最终都是转为ip地址向服务器访问。这里就会有一个问题,如果每个web应用都设置了首页,而又不在浏览器中输入域名,而是直接通过ip地址打开,那么服务器怎么知道应该是去哪个虚拟主机寻求资源呢?

  答案就在Tomcat服务器的引擎上,由server.xml文件中的标签定义了Tomcat服务器的默认虚拟主机:


 ...
  
  
 ...

因此如果我想改变Tomcat服务器的默认虚拟主机,就修改标签中的“defaultHost”属性。

================================================================

  如果要将开发好的web应用部署到远程服务器中,可以将web应用进行压缩成war格式,再进行传输,在Tomcat服务器运行的过程中,如果在其存放web应用的目录中检测到新增的war包,则会进行自动解压并部署(中的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启动后,也就是服务器(标签),启动后也会启动一些监听器()和一些全局命名资源()。

  除了服务器(标签)被启动后,还会启动“服务”(),正如在cmd中键入的“services.msc”的那种。 

 

  在服务()下会有各种连接器(),如上面体系结构图所示,其中和浏览器打交道的连接器()定义了连接协议(protocol),连接端口(port),连接超时(connectionTimeout)等等属性,当然还要别的用途的连接器。

  

  在服务()下除了各种连接器(),还有一个引擎(),当浏览器将一些请求发来时就通过连接器()交给引擎(),引擎()中可以包含一个或多个虚拟主机(),而引擎也规定了哪个虚拟主机是默认访问的。 

 

  引擎()通过寻找指定的虚拟主机()将请求交给它,然后由虚拟主机()来寻找是哪个web应用,虚拟主机()定义了浏览器需输入的主机名称、web应用存放的位置,和别的一些属性等等 

 

  而至于何种web应用就要看采用哪种虚拟目录映射了,如果是添加,那么一个标签就代表一个web应用  

  或者是直接将web应用所在目录放在标签指定的路径,那么就没有标签来代表该web应用


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
author-avatar
阳光-沙滩男人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有