服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Tomcat - tomcat虚拟主机_动力节点Java学院整理

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

2021-08-23 18:14fjdingsd Tomcat

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

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

?
1
2
3
<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】盘下:

?
1
2
<host name="www.fjdingsd.com" appbase="d:\fjdingsd" autodeploy="true" unpackwars="true">
</host>

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

   【news】目录中:  

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

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

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

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

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

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

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

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

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

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

?
1
2
3
4
5
6
<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 

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

并得到了war文件: 

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

然后将这个news.war往tomcat的【webapps】目录中一放,过几秒后tomcat就会对其自动解压,tomcat服务器一定要先打开才会看到自动解压的过程。

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

   过3、4秒后:  

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

如果在tomcat运行的过程中,将已经自动解压的war包删除,则过几秒tomcat也会自动将解压后的web应用删除,这点请注意。

  如果是在tomcat服务器未启动之前,将war包放入【webapps】目录中,那么tomcat启动后会自动解压并部署。

  如果在是tomcat解压的war包,而在将tomcat关闭后再删除war包,那么在此启动tomcat后之前由war包解压出来的web应用不会被删除。

tomcat的体系结构  

  tomcat的体系结构可以从其最重要的server.xml文件中进行结构分析,下图是一张tomcat的体系结构图:

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

结合server.xml文件可以看到:  

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

  tomcat启动后,也就是服务器(<server>标签),启动后也会启动一些监听器(<listener>)和一些全局命名资源(<globalnamingresources>)。

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

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

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

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

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

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

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

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

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

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

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

延伸 · 阅读

精彩推荐
  • Tomcat一次tomcat源码启动控制台中文乱码的调试过程记录

    一次tomcat源码启动控制台中文乱码的调试过程记录

    平时在使用tomcat做一些服务的时候经常遇到各种乱码问题,下面这篇文章主要给大家介绍了一次tomcat源码启动控制台中文乱码的调试过程,需要的朋友可以...

    zhoutaoping199211852021-09-24
  • TomcatEclipse创建tomcat实现过程原理详解

    Eclipse创建tomcat实现过程原理详解

    这篇文章主要介绍了Eclipse创建tomcat实现过程原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以...

    海绵般汲取11642021-09-16
  • TomcatTomcat CentOS安装实现过程图解

    Tomcat CentOS安装实现过程图解

    这篇文章主要介绍了Tomcat CentOS安装实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考...

    agrin5842021-09-15
  • TomcatTomcat服务器的安全设置

    Tomcat服务器的安全设置

    tomcat是一个开源Web服务器,基于Tomcat的Web运行效率高,可以在一般的硬件平台上流畅运行,因此,颇受Web站长的青睐。不过,在默认配置下其存在一定的安...

    IT专家网9002021-08-03
  • Tomcat如何查看tomcat的控制台输出的方法

    如何查看tomcat的控制台输出的方法

    这篇文章主要介绍了如何查看tomcat的控制台输出的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    CaiCaiNeo11932021-08-29
  • TomcatTomcat安装配置方法图文教程

    Tomcat安装配置方法图文教程

    这篇文章主要为大家详细介绍了Tomcat安装配置方法图文教程,java环境变量如何配置,Eclipse安装配置方法图文教程 ,为大家分享了三个教程,感兴趣的小伙...

    Tomcat教程网13292021-08-11
  • TomcatTomcat整体结构简单介绍

    Tomcat整体结构简单介绍

    这篇文章主要介绍了Tomcat整体结构简单介绍,Tomcat的本质是一个Servlet容器。一个Servlet能做的事情是:处理请求资源,并为客户端填充response对象,需要的朋友...

    叫我田露也行12302021-09-07
  • Tomcat解决Tomcat的maxPostSize属性的配置需要注意的问题

    解决Tomcat的maxPostSize属性的配置需要注意的问题

    这篇文章主要介绍了解决Tomcat的maxPostSize属性的配置需要注意的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...

    life is wonderful12012021-09-13