tomcat虚拟主机的配置

1什么是虚拟主机

一台物理机上搭建多个web站点,每个web站点独立运行,互不干扰,这些站点就是"虚拟主机"

2基于主机名的虚拟主机配置

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

2.1、配置/etc/hosts文件做域名解析

[root@master ~]# echo '192.168.10.10  www.blog.com'>>/etc/hosts

[root@master ~]# echo '192.168.10.10  www.bbs.com'>>/etc/hosts

2.2配置server.xml文件

[root@master conf]# mkdir /usr/local/tomcat/blog

[root@master conf]# mkdir /usr/local/tomcat/bbs

[root@master conf]# vim server.xml  

#编辑server.xml文件,在</Engine>标签上面添加下面内容

<Host name="www.blog.com"  appBase="/usr/local/tomcat/blog" unpackWARs="true" autoDeploy="true">

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

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

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

        </Host>

 

 <Host name="www.bbs.com"  appBase="/usr/local/tomcat/bbs" unpackWARs="true" autoDeploy="true">

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

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

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

        </Host>

    </Engine>   在该标签上面添加如上内容

2.3、重启tomcat服务

[root@master conf]# stop

[root@master conf]# start

2.4、浏览器测试或者命令行测试都可以

这里http端口号我修改成了80https端口修改成了443,并且配置了httphttps自动跳转。只需要把相关网页文件分别复制到/usr/local/tomcat/blog/usr/local/tomcat/bbs,然后浏览器分别输入域名www.blog.comwww.bbs.com测试。

3、基于端口的虚拟主机配置

基于端口号的虚拟主机:一个IP地址,通过不同的端口实现不同网站的访问。

3.1、配置/etc/hosts文件做域名解析

[root@master ~]# echo '192.168.10.10  www.blog.com'>>/etc/hosts

3.2配置server.xml文件

步骤:在server.xml 设置两个service组件,这两个server组件添加在配置文件最后一行</Server>的上面。

[root@master conf]# vim server.xml 

<Service name="myService1" >

        <Connector port="8081"/>

        <Engine name="blog-1" defaultHost="www.blog.com" >

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

                <Host name="blog-1" appBase="/usr/local/tomcat/blog-1" />

        </Engine>

</Service>

 

 

<Service name="myService2" >

        <Connector port="8082"/>

        <Engine name="blog-2" defaultHost="www.blog.com" >

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

                <Host name="blog-2" appBase="/usr/local/tomcat/blog-2" />

        </Engine>

</Service>

</Server>    以上内容添加在最后一行上面

3.3、创建相关目录和网页文件并重启tomcat服务

[root@master ~]# mkdir /usr/local/tomcat/blog-1

[root@master ~]# mkdir /usr/local/tomcat/blog-2

复制相关网页文件到以上两个目录即可

 

[root@master conf]# stop

[root@master conf]# start

3.4、浏览器测试或者命令行测试都可以

浏览器分别输入域名www.blog.com:8081www.blog.com:8082测试。

 

说明:

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