Tomcat配置虚拟主机的两种方式

1.基于主机名的虚拟主机配置

  •  在随意盘符下建立一个目录作为虚拟地址的目录。例如:F:\virtualhost1,在其下建立 test1.html,写入内容例如:test
  •  在tomcat/conf/service.xml中 加入如下配置一段<Host> 配置
复制代码
<Host>
......
</Host> 这里的Host配置,是配置文件原本就有的,下面的需要我们自己增加


<
Host appBase="F:\virtualhost1" autoDeploy="true" name="site1" unpackWARs="true"> <Context path="" docBase="." debug="0" /> </Host>
复制代码
  • 打开C:\Windows\System32\drivers\etc 下面的hosts文件 加入127.0.0.1      site1   
127.0.0.1       localhost  //:有了这一行,所以浏览器输入:http://localhost:8080/ 能进入tomcat  ,下一行同理
127.0.0.1        site1

假设在tomcat、wenbapps下的ROOT文件夹下有hello.html  内容写入 hello。

启动tomcat,在浏览器输入:http://localhost:8080/index.html  ----->将显示  :hello   访问的是tomcat下的资源

                  在浏览器输入:http://site1:8080/index.html       ------>将显示  :test   访问的是F:\virtualhost1 下的资源

实际上 二者的ip是一样的,都是127.0.0.1  但是却实现了访问两个“主机”上的资源,一个是tomcat下的,一个是F盘下的。假如A,B两公司很穷,网站公用一台服务器,但又不能够直接输入IP来进入,因为只有一个IP,这里在一台电脑上设置虚拟,二者设置不同的虚拟目录,使用虚拟目录名来访问便可实现公用,实际还是一个ip,一台主机。

 2.基于端口的虚拟主机配置

  • 在随意盘符下建立一个目录作为虚拟地址的目录。例如:F:\virtualhost2,在其下建立 test1.html,写入内容例如:test2
  • 在tomcat/service.xml  里半加入一段 <Service> 配置,如下
复制代码
<Service>
<Connector ......./>
<Engine defaultHost="localhost" name="Catalina" >
.......
  </Engine>
  
</Service> 这里的配置也是文件原本就有的,下面是增加的。

<Service> <Connector connectionTimeout="20000" port="8082" protocol="HTTP/1.1" redirectPort="8443"/> 因为是基于端口的配置,这里的8082端口是新增的,以后的访问将用到 <Engine name="second" debug="0"> <Host appBase="F:\virtualhost2" autoDeploy="true" name="site2" unpackWARs="true"> <Context path="" docBase="." debug="0" /> </Host> </Engine> </Service>
复制代码

启动tomcat,输入 http://localhost:8080/index.html  ------->将显示tomcat/webapps/ROOT/index.html 里边的内容

                  输入 http://localhost:8082/index.html --------->将显示F:\virtualhost2  下的index.html 里边的内容

这里通过不同的端口进来实现了,不同基于不同端口的虚拟主机的配置。

 

posted @   逃离沙漠  阅读(9842)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示