Tomcat学习笔记(四)——虚拟主机
2012-01-25 18:32
519 查看
一、基于主机名的虚拟主机
网络环境:
1. 浏览器访问基于主机名的虚拟主机时,访问URL必须采用主机名,不能使用IP地址
2.整个网络系统中必须建立主机名与IP地址的映射关系
2.1使用本地 Hosts 文件建立主机名与IP的映射关系(C:\Windows\System32\drivers\etc\Hosts)
127.0.0.1 www.andgoo.cn
127.0.0.1 www.pds.cn
2.2 使用DNS (要钱的)
在设置好Hosts 文件后使用命令行ping localhost 和www.pds.cn 都能ping 通
创建两个虚拟主机的虚拟目录结构如下:
F:\web
|———+ VM1
|—————+ROOT
|————————+WEB-INF
|————————+index.html
|———+ VM2
|—————+ROOT
|————————+WEB-INF
|————————+index.html
修改 server.xml 文件
添加以下代码直 server.xml 文件的<Engine> 元素中
测试:
1. 重启Tomcat
2. 浏览器测试:
URL:http://www.andgoo.cn:8080/index.html
URL:http://www.pds.cn:8080/index.html
二、基于端口号的虚拟主机
配置原理:
1. 一个<Connector> 元素用于配置一个对外的连接器,对于Web服务器的每一个监听端口号,都要配置一个独立的<Context>元素
2. 一个<Connector> 元素对应的连接器必须有一个<Engine> 元素关联
3. 将一个或多个<Context> 元素与<Engine> 元素关联的方式:将<Context> 元素与<Engine> 元素嵌套在同一个<Service> 元素中
配置方法:
在 server.xml 文件 的 <Server> 元素里面添加另一个 <Services> 元素
注意:
1. <Service> 元素的 name 属性名称必须与原 <Service> 名称不同,因此修改为:secend-serv
2. <Engine>元素的 port 属性修改为 80(或者其他你想要的不被占用的端口)
3. <Engine>元素的 defaultHost 属性修改为所包含的一个 <Host> 属性的 name 属性值,我选用
www.andgoo.cn
4. 此部分我没有测试成功,正在尝试中……
三、基于IP地址的虚拟主机
1. HTTP 1.0 不支持Host 字段,在站点统一使用80 端口时,人吗只能采用不同的IP地址来建立虚拟主机
缺点:每个虚拟主机占用一个IP,IP消耗严重
2. HTTP 1.1 可以使用不同的主机名建立多个WEB站点,所以提供商一般不再建立基于IP地址的虚拟主机服务
3. Tomcat 不提供基于IP地址的虚拟主机方式
张孝祥老师的测试方式如下(我用下面方法无法测试,不知道为什么):
1. CMD 命令行下运行:telnet localhost 8080
2. Ctrl + ] , 然后回车
3. GET /test.html HTTP/1.1
Host:主机名
说明:主机名若不写,默认为localhost
网络环境:
1. 浏览器访问基于主机名的虚拟主机时,访问URL必须采用主机名,不能使用IP地址
2.整个网络系统中必须建立主机名与IP地址的映射关系
2.1使用本地 Hosts 文件建立主机名与IP的映射关系(C:\Windows\System32\drivers\etc\Hosts)
127.0.0.1 www.andgoo.cn
127.0.0.1 www.pds.cn
2.2 使用DNS (要钱的)
在设置好Hosts 文件后使用命令行ping localhost 和www.pds.cn 都能ping 通
创建两个虚拟主机的虚拟目录结构如下:
F:\web
|———+ VM1
|—————+ROOT
|————————+WEB-INF
|————————+index.html
|———+ VM2
|—————+ROOT
|————————+WEB-INF
|————————+index.html
修改 server.xml 文件
添加以下代码直 server.xml 文件的<Engine> 元素中
<Host name="www.andgoo.cn" appBase="F:\web\VM1" unpackWARs="true" autoDeploy="true" />
<Host name="www.pds.cn" appBase="F:\web\VM2" unpackWARs="true" autoDeploy="true" />
测试:
1. 重启Tomcat
2. 浏览器测试:
URL:http://www.andgoo.cn:8080/index.html
URL:http://www.pds.cn:8080/index.html
二、基于端口号的虚拟主机
配置原理:
1. 一个<Connector> 元素用于配置一个对外的连接器,对于Web服务器的每一个监听端口号,都要配置一个独立的<Context>元素
2. 一个<Connector> 元素对应的连接器必须有一个<Engine> 元素关联
3. 将一个或多个<Context> 元素与<Engine> 元素关联的方式:将<Context> 元素与<Engine> 元素嵌套在同一个<Service> 元素中
配置方法:
在 server.xml 文件 的 <Server> 元素里面添加另一个 <Services> 元素
<Service name="secend-serv"> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Engine name="Catalina" defaultHost="www.andgoo.cn"> <Host name="www.andgoo.cn" appBase="F:\web\VM1" unpackWARs="true" autoDeploy="true" /> <Host name="www.pds.cn" appBase="F:\web\VM2" unpackWARs="true" autoDeploy="true" /> </Engine> </Service>
注意:
1. <Service> 元素的 name 属性名称必须与原 <Service> 名称不同,因此修改为:secend-serv
2. <Engine>元素的 port 属性修改为 80(或者其他你想要的不被占用的端口)
3. <Engine>元素的 defaultHost 属性修改为所包含的一个 <Host> 属性的 name 属性值,我选用
www.andgoo.cn
4. 此部分我没有测试成功,正在尝试中……
三、基于IP地址的虚拟主机
1. HTTP 1.0 不支持Host 字段,在站点统一使用80 端口时,人吗只能采用不同的IP地址来建立虚拟主机
缺点:每个虚拟主机占用一个IP,IP消耗严重
2. HTTP 1.1 可以使用不同的主机名建立多个WEB站点,所以提供商一般不再建立基于IP地址的虚拟主机服务
3. Tomcat 不提供基于IP地址的虚拟主机方式
张孝祥老师的测试方式如下(我用下面方法无法测试,不知道为什么):
1. CMD 命令行下运行:telnet localhost 8080
2. Ctrl + ] , 然后回车
3. GET /test.html HTTP/1.1
Host:主机名
说明:主机名若不写,默认为localhost
相关文章推荐
- Tomcat学习笔记_基于主机名的虚拟主机的配置
- Tomcat学习笔记_基于主机名的虚拟主机的配置
- Tomcat学习笔记 虚拟主机
- Tomcat配置-学习笔记3---配置虚拟主机
- Tomcat配置-学习笔记2---虚拟目录的映射
- linux学习第五十四篇:配置Tomcat监听80端口,配置Tomcat的虚拟主机,Tomcat日志
- PHP学习笔记【4】--apache服务器配置--配置虚拟目录和配置虚拟主机
- nginx学习笔记(8)虚拟主机名---转载
- tomcat 5.08中虚拟主机设置笔记
- seo学习笔记,如何设置虚拟主机,如何书写重定向文件
- tomcat 5.08中虚拟主机设置笔记
- 【AWS学习笔记】Amazon EC2虚拟主机
- Tomcat学习笔记 虚拟目录及虚拟子目录篇
- PHP学习笔记【4】--apache服务器配置--配置虚拟目录和配置虚拟主机
- 韩顺平PHP学习视频笔记整理029apache服务器使用及配置④ apache虚拟主机 web访问时序图
- CentOS学习笔记之<虚拟机能ping通同一网关的其他机器,ping不通主机>
- tomcat7 虚拟主机设置笔记
- nginx学习笔记之基于端口的虚拟主机基于主机名的虚拟主机root、alias、index配置
- Tomcat 学习笔记(3) - Host 主机配置
- 手打原tomcat笔记手抄本之虚拟主机和虚拟目录