浅谈Tomcat配置虚拟主机 - 极悦
专注Java教育14年 全国咨询/投诉热线:444-1124-454
极悦LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 浅谈Tomcat配置虚拟主机

浅谈Tomcat配置虚拟主机

更新时间:2020-12-09 17:26:03 来源:极悦 浏览1147次

说到Tomcat配置虚拟主机,我们先来搞懂什么是虚拟主机,我们也许都知道虚拟主机但说起来又不太清楚确切的概念。"虚拟主机"实际上是一台物理机上搭建的多个web站点,每个web站点独立运行,互不干扰。在实际开发中,为了提高硬件资源的利用率,通过Tomcat配置虚拟主机的方式,实现服务器的共享。

 

下面我们从两个大的方面来讲Tomcat配置虚拟主机:

一、Tomcat配置虚拟主机的实现方式

1、基于主机名的虚拟主机

多个域名解析到同一个IP地址,在WEB服务器里添加多个站点,每个站点设定一个主机名。HTTP协议请求里包含了主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。

步骤:

1)配置域名与Ip的映射管理(对于本地局域网我们使用在host文件中添加;对于大型网络或者外网网络则需要配置DNS服务器中Ip地址与域名的映射关系)

在C:\Windows\System32\drivers\etc\hosts文件末尾添加:

 

127.0.0.1 www.jalja1.org

127.0.0.1 www.jalja2.org

 

2)配置server.xml

 

        <Host name="www.jalja1.org"  appBase="E:/学习/activeMq/app1" unpackWARs="true" autoDeploy="true">

            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

            prefix="localhost_access_log." suffix=".txt"

            pattern="%h %l %u %t "%r" %s %b" />

        </Host>

 

            <Host name="www.jalja2.org"  appBase="E:/学习/activeMq/app2" unpackWARs="true" autoDeploy="true">

            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

            prefix="localhost_access_log." suffix=".txt"

            pattern="%h %l %u %t "%r" %s %b" />

        </Host>


3)测试

http://www.jalja1.org:8080/

 

http://www.jalja2.org:8080/

 

2、基于端口号的虚拟主机

一个IP地址,通过不同的端口实现不同网站的访问。

 

步骤:在server.xml 中 设置两个service组件

 

  <Service name="Catalina">

    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.LockOutRealm">

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>

      </Realm>

        <Host name="www.jalja1.org"  appBase="E:/学习/activeMq/app1" unpackWARs="true" autoDeploy="true">

            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

            prefix="localhost_access_log." suffix=".txt"

            pattern="%h %l %u %t "%r" %s %b" />

        </Host>

    </Engine>

  </Service>

  

  <Service name="Catalina2">

    <Connector port="8888" protocol="HTTP/1.1"  connectionTimeout="20000" redirectPort="8443" />

    <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

    <Engine name="Catalina2" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.LockOutRealm">

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>

      </Realm>

        <Host name="www.jalja1.org"  appBase="E:/学习/activeMq/app2" unpackWARs="true" autoDeploy="true">

            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

            prefix="localhost_access_log." suffix=".txt"

            pattern="%h %l %u %t "%r" %s %b" />

        </Host>

    </Engine>

  </Service>

测试:

http://www.jalja1.org:8888/

 

http://www.jalja1.org:8080/

 

 

 

3、基于IP地址的虚拟主机

服务器使用多网卡配置多个IP地址,然后配置WEB服务器,把多个网站绑定在不同的IP上。(该方式浪费Ip资源,tomcat不支持该方式)

 

二、Tomcat配置虚拟主机的具体过程

1、需求

1)创建 index.html 页面

2)将 index.html 资源部署到 D盘 的 demo 目录中

3)通过 http://www.itbz.com:8888/itbz/index.html 访问虚拟主机,并访问 index.html

 

2、创建页面

创建 index.html 页面:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

    <HEAD>

        <TITLE>ITBZ</TITLE>

        <META NAME="Generator" CONTENT="EditPlus">

        <META NAME="Author" CONTENT="">

        <META NAME="Keywords" CONTENT="">

        <META NAME="Description" CONTENT="">

    </HEAD>

    <BODY>

        Welcome to ITBZ!

    </BODY>

</HTML>


3、修改 server.xml 添加 Host 配置

<Host name="www.itbz.com" appBase="webapps" unpackWARs="true" autoDeploy="true">


4、添加 Context 配置<Context path="/itbz" docBase="D:\demo" />


5、修改 windows 的 hosts 文件修改 Windows 系统中的 hosts 文件做域名与 IP 的绑定。hosts 文件位置:C:\Windows\System32\drivers\etc修改内容:127.0.0.1 www.itbz.com


6、访问资源测试结果

 

Tomcat配置虚拟主机的实质目的还是为了为提高硬件资源的利用率,实现服务器的资源共享,这也是许多项目开发中不容忽视的需求。我们可以尝试在本站的Tomcat服务器教程中的实际项目中,体验一下虚拟主机的实际应用。


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>