虚拟主机概念:一台物理计算机上运行多个web应用,每个应用独立运行,拥有自己的工作空间,互不干扰,对于这些应用来说就是虚拟机,虚拟主机可以节省资源,优化管理,便于后期web服务器的维护、升级等。
虚拟主机的实现方式:
- 基于主机名的虚拟主机:多个域名解析到同一个ip地址,在web服务器中设置多个站点,各自对应一个主机名。web服务器根据接受到的请求解析出相应的主机名,然后根据不同的主机名进行访问。
- 基于端口号:一个ip地址通过不同的端口号实现不同的网站的访问,可以通过增加service节点实现监听来自不同端口的http请求。
- 基于IP地址的虚拟机:服务器绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。
- Tomcat 处理http请求示意图:
配置基于主机名的虚拟主机:
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Host name="www.tiantian.com" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Host name="www.xiaoxiao.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
配置基于端口的虚拟主机:<Service name="catalina"> <Connector port="8080" ..../> <Engine name="Catalina" ...> <Host name="www.tian.com" appBase="D:/tian" ...> .... < /Host> </Engine> </Service> <Service name="catalina2"> <Connector port="8090" ..../> <Engine name="Catalina" ...> <Host name="www.di.com" appBase="D:/di" ...> .... < /Host> </Engine> </Service>
配置基于IP的虚拟主机:略....