对于Tomcat服务器,可以放置多个网站(多个web应用),这就是讲配置多个虚拟主机,可以看成好像有多个主机,而每个主机上有一个web应用。如同之前的文章所说的,对于Tomcat服务器来讲,在server.xml文件中,一个
...
可以看到这个已有的虚拟主机的名称(“localhost”)正好是浏览器访问本机的回环地址的主机名,appBase属性是存放web应用的目录,autoDeploy指是否自动部署,unpackWARs指是否自动解压war包,如果为false则不解压直接从war包中运行应用程序。
而我们想配置多个虚拟主机也是这样,在server.xml文件中添加
通常配置虚拟主机方式与网站域名比较相关,而我没有有域名的网址,因此直接修改hosts文件将域名重定向作为学习在服务器中虚拟主机的添加和配置。
修改Tomcat服务器中的server.xml文件,添加
【news】目录中:
当在server.xml中添加好虚拟主机之后,直接将web应用放置在对应的虚拟主机存放web应用目录,注意,这里是由
现在就是需要将定义的虚拟主机名和ip绑定,因为没有向DNS服务器注册,所以我就使用hosts文件中将我的虚拟主机名与本机ip地址绑定:
这样启动Tomcat服务器,在浏览器中输入,可以看到:
这样就配置好了一个虚拟主机,并且在这虚拟主机中还有web应用。
这里只是小试一下对Tomcat服务器的虚拟主机配置,而如果想真正让外界访问我们配置的虚拟主机(网站),应该向DNS服务器注册域名才行。
不管在Tomcat服务器中添加了多少个虚拟主机,最终都是转为ip地址向服务器访问。这里就会有一个问题,如果每个web应用都设置了首页,而又不在浏览器中输入域名,而是直接通过ip地址打开,那么服务器怎么知道应该是去哪个虚拟主机寻求资源呢?
答案就在Tomcat服务器的引擎
... ...
因此如果我想改变Tomcat服务器的默认虚拟主机,就修改
================================================================
如果要将开发好的web应用部署到远程服务器中,可以将web应用进行压缩成war格式,再进行传输,在Tomcat服务器运行的过程中,如果在其存放web应用的目录中检测到新增的war包,则会进行自动解压并部署(
那么如何对开发好的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启动后,也就是服务器(
除了服务器(
在服务(
在服务(
引擎(
而至于何种web应用就要看采用哪种虚拟目录映射了,如果是添加
或者是直接将web应用所在目录放在