. 虚拟主机的概述:
a . 在一台真实的服务器上,运行着多个网站,这些网站在访问者看来是运行在各自的服务器上面,但是实际情况是,这些网站可以运行在同一台服务器中,一个网站可以看做是一个主机,这些主机没有独立的独立的服务器使用,而是存在于一个服务器中,所以这些主机称之为虚拟主机,一个网站就是一个虚拟主机,虚拟主机的存在只是个虚拟的电脑主机系统。
. web应用的概述:
a. 在一台虚拟主机中,需要存储多个web资源,但是虚拟主机无法直接存储这些web资源,如果直接使用虚拟主机来存储这些web资源则会导致资源混乱难以维护,可以按照功能来划分目录,将同一功能的web资源放入一个目录中,这个目录就是web应用的目录,比如水果网站,其中的订单和前台页面就分别在不同的文件夹的下面
. web应用
a. 系统中创建一个真实web应用目录,这个目录如果希望通过互联网来访问,那么就需要为它提供一个虚拟路径映射关系-----通过虚拟路径可以找到主机上的真实的web应用目录
b. 添加这个映射关系,就是讲当前系统中的真实文件的路径与一个虚拟路径之间构建一个关联关系
c.通过虚拟路径的映射关系能够直接找到相应的web应用目录下的具体资源
. web应用添加映射的关系方式:
a. 第一种:server.xml中找到Host标签 ,在Host标签中添加<Contex path="" docbase=""/>
其中path ---代表的是虚拟路径(名字可以任意取) docBase---真实路径(主机中的资源真实目录---盘符+路径)
b. 第二种:conf/Catalina/localhost创建一个以虚拟路径命名的.xml文件,文件中书写<Contex docbase=""/> 默认加载引擎是Caralina引擎,当前主机
docBase---真实路径(主机中的资源真实目录)热部署---如果虚拟路径是多级路径,window中无法使用"/"来定义,所以使用“#”代替 地址栏 /aaa/bb 文件名 aaa#bb.xml
c. 第三种:在webapp目录中创建一个虚拟路径命名的目录,这个目录就是web应用,目录的名称既是web应用的虚拟路径也是真实web应用的名称,这种方式支持热部署
缺省的web应用配置(默认的配置)
a. 在访问一个网站的时候,可以使用缺省web应用作为主页的应用使用,这样可以在地址栏中只写域名而不必书写web应用的虚拟路径名称
b. 注意:一个虚拟主机只能有一个缺省web应用
c. 缺省的方式:
在conf/Catalina/localhost创建一个虚拟路径命名的.xml,文件中书写<Context docBase="真实路径"/>
文件名称可以不用写,可以使用ROOT来命名.xml文件。作为web应用的缺省路径来使用
在webapps目录下创建一个ROOT为目录名称的文件夹,这个目录会作为缺省web应用来使用
缺省优先级:server.xml>conf/Catalina/localhost/>webapps
虚拟主机中的属性详细版
web应用目录结构:
1. 存放静态的web资源,此处存放的是静态web资源可以被直接访问
2. WEB-INF
vvvv 静态web资源,此处存放的是静态web资源可以直接被访问,被 隐藏了起来
a. lib 当前web存放的jar包所要依赖的
b.classes 存放动态资源的目录
c.web.xml 用于配置当前web应用,可以配置缺省主页,配置servlet映射,监听器和过滤器.
注意:一个web应用的目录结构可以不完整,但是如果要构建完整web应用,则需要样额遵守上述结构
web.xml文件:
1. web.xml文件时一个web应用的配置文件,在这个配置文件中可以配置的内容有过滤器,监听器,servlet映射,缺省主页等
2. 修改web.xml文件中的<welcome-file-list>标签,修改子标签内容为1.html,此时表示的时1.html为缺省页面
3. 缺省主页:在浏览器访问一个web应用之后无需书写任何静态资源名称,即可默认访问的页面,称之为缺省主页
虚拟主机的搭建
1. 在tomcat中创建一个网站就是创建一个新的主机,虚拟主机可以在server.xml文件中进行配置使用
2. 添加内容如下: <Host name="www.baidu.com" appBase="baidu"> </Host>
3. appBase属性:web的目录资源路径
4. name属性:虚拟主机的名称,也表示域名(在浏览器地址栏中书写的内容)
配置hosts文件:
1. 配置hosts文件的意义:一个域名在被访问的时候,会被解析成一个ip地址,使用这个ip地址
可以寻找对应的服务器,在调用服务器中的web应用提供服务
2. 为了能够让我们自己创建的域名www.baidu,com被访问,需要在hosts文件中配置ip和域名的映射内容,配置的内容如下:127.0.0.1 www.baidu.com
上述内容表示:将域名www.baidu.com解析成Ip地址为本机的IP地址、
**3. hosts的文件位置 ---->C:\Windows\System32\drivers\etc\hosts**
设置缺省主机:
<Engine defaultHost="localhost">
在使用ip地址直接访问服务器的时候,无法确定访问的虚拟主机是什么,从而无法挑选对应的虚拟主机服务,这时将会从<Engine defaultHost>属性选择域名来提供服务
Host的属性目录:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200818235150134.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMzQ5MTYx,size_16,color_FFFFFF,t_70#pic_center)
拓展:
1. 打包方式:jar -cvf 资源目录.war 直接用压缩工具zip进行打包war包
2. 通用context和web.xml.所有的<Context>都继承来自子类conf/context.xml
3. 所有的web.xml都继承来自conf/web.xml