更新时间: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服务器教程中的实际项目中,体验一下虚拟主机的实际应用。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习