您的位置:首页 > 运维架构 > Tomcat

tomcat配置虚拟目录和虚拟主机

2016-05-15 14:39 585 查看
在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下,且这些域名都是同端口
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: