tomcat配置虚拟目录和虚拟主机
Posted node2017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat配置虚拟目录和虚拟主机相关的知识,希望对你有一定的参考价值。
在server.xml的host节点配置多个context,就是虚拟目录了,很简单
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="/liuxg1" docBase="/liuxg1" reloadable="true" crossContext="true"/>
<Context path="/liuxg2" docBase="/liuxg2" reloadable="true" crossContext="true"/>
</Host>
crossContext属性能让你的应用共享上下文环境,例如:
在liuxg1中的项目中有如下代码
ServletContext liuxg1 =session.getServletContext();
liuxg1.setAttribute("user", "liuxg1");
该代码的作用是将key为user,value为liuxg1放到项目的上下文中
然后在liuxg2中的项目中有如下代码
ServletContext context =session.getServletContext();
ServletContext liuxg1 = context.getContext("/liuxg1");
out.print("user=" + (String)liuxg1.getAttribute("user"));
该代码的作用是将项目liuxg1的上下文存放的key为user的value拿出。
appBase和docBase可以让你指定项目的存放路径
接下来配置虚拟主机,也很简单,只需要在server.xml的engine节点下配置多个host即可
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="www.liuxg1.com" appBase="E:\\liuxg\\"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="/" docBase="/liuxg1" reloadable="true" />
</Host>
<Host name="www.liuxg2.com" appBase="E:\\liuxg\\"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="/" docBase="/liuxg2" reloadable="true" />
</Host>
</Engine>
虚拟的主机的左右,可以让你根据域名的不同访问不同的项目,这些项目都可以放在同一个tomcat下,且这些域名都是同端口
以上是关于tomcat配置虚拟目录和虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章