概念:两个地址(不同的域名或者不同的端口号)映射到同一台服务器上,访问不同web根目录。
有两种实现方法:
① 建立基于主机名的虚拟主机
打开server.xml,找到标签<host>,新建一个host,名字是你的域名,因为用户在输入这个域名访问你的服务器的时候,这个名字会当作主机名放在请求中。tomcat便可以据此,为用户指定web目录。
② 建立基于端口号的虚拟主机
在server.xml中,找到标签<Service>,你需要自己定义一个Service元素,在它的<Connector>中设置端口号,这样通过该端口号,就可以访问该服务。
实例:
<Host name="www.XXXXXX.com.cn" debug="0" appBase="/usr/local/tomcat/apache-tomcat-5.5.25/temp/ROOT" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="sentom1_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="sentom1_log." suffix=".txt" timestamp="true"/>
<Context path="" docBase="." debug="0" reloadable="true" crossContext="true"/>
</Host>
<Host name="XXXXXX.com.cn" debug="0" appBase="/usr/local/tomcat/apache-tomcat-5.5.25/temp/ROOT" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="sentom1_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="sentom1_log." suffix=".txt" timestamp="true"/>
<Context path="" docBase="." debug="0" reloadable="true" crossContext="true"/>
</Host>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="sentom1_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="sentom1_log." suffix=".txt" timestamp="true"/>
<Context path="" docBase="." debug="0" reloadable="true" crossContext="true"/>
</Host>
<Host name="XXXXXX.com.cn" debug="0" appBase="/usr/local/tomcat/apache-tomcat-5.5.25/temp/ROOT" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="sentom1_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="sentom1_log." suffix=".txt" timestamp="true"/>
<Context path="" docBase="." debug="0" reloadable="true" crossContext="true"/>
</Host>
"name"就是对应的主机名,"appBase"是站点目录
这样就行了,然后重启TOMCAT:
$cd /usr/share/tomcat5.5/bin/
$./shutdown.sh
$./startup.sh
这样就行了,然后重启TOMCAT:
$cd /usr/share/tomcat5.5/bin/
$./shutdown.sh
$./startup.sh