Tomcat的Server.xml虚拟主机和虚拟目录的配置
以前开发JavaEE网站都布置在Tomcat下,布置目录一般为$CATALINA_HOME/webapps/WebName,所以要访问网站,则在http://localhost后必须要加上上下文路径(ContextPath)/WebName,而运行环境一般为http://www.abc.com,上下文路径为空。这样就造成了开发环境与运行环境的差异,虽然在JSP中可以通过<%=request.getContextPath()%>解决,但如果换成其它模板,比如Velocity,就又不行了。
本文通过参考各大网友的做法以及自己的亲身实践,成功地在Tomcat下设置多个虚拟主机和多个虚拟目录,写出来以供各网友参考和自己做个笔记。
Tomcat 5和Tomcat 6的配置文件为:$CATALINA_HOME/conf/server.xml,其它的版本的Tomcat的配置文件没有用过。
注意以下的一,二,……步骤不是顺序的,是可以选择的。
说明:虚拟主机在server.xml为Host,虚拟目录为Context。
一、修改端口
Tomcat默认的WEB端口为8080,我一般喜欢把它改成80,当然这是完全没有必要的
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
注意是修改HTTP协议的,也就是protocol="HTTP/1.1"的,不是其他的。
二、增加虚拟目录
1、最简单的方式:直接把JavaEE网站放在$CATALINA_HOME/webapps目录下了,然后通过http://localhost/WebName,WebName为网站的目录名;
2、自定义:把网站放在其它的目录下,比如放在/var/www/webapp目录下,那么就要修改server.xml了。
在</Host>前增加以下内容即可:
<Context path="/SpringMVC" docBase="/var/www/webapp/SpringMVC" workDir="/var/www/webtmp/SpringMVC" debug="5" reloadable="false" crossContext="true" />
则可以通过http://localhost/SpringMVC访问了,也就是在主机名为localhost中增加了一个名为SpringMVC的虚拟目录了,当然,这里的名字完全依个人而定的。
三、增加虚拟主机
其实这才是本文要说的重点,也就是本文开头说的那种案例。我们每开发一个网站,都是通过http://localhost/WebName的形式访问,是不是很麻烦?
1、修改hosts文件,增加主机名
(1)Linux系统的hosts文件为/etc/hosts
(2)Windows系统的hosts文件为C:\WINDOWS\system32\drivers\etc\hosts
比如你想增加www.local.com主机,则在此文件中增加一行:127.0.0.1 www.local.com,也就是说当你访问www.local.com时,其实是访问127.0.0.1;
我比较喜欢简短的域名,所以我增加的是:127.0.0.1 SpringMVC
2、修改配置文件
在</Host>后再增加一个Host结点:
<Host name="SpringMVC" appBase="/var/www/webapp/SpringMVC" unpackWARs="true" autoDeploy="false" xmlValidation="false" xmlNamespaceAware="false" />
即增加了一个名为SpringMVC的虚拟主机,当然也可以是name="www.local.com",这个根据具体情况定。
这样,访问的IP就是:http://SpringMVC了。
3、目录设置
主机SpringMVC的WEB文件全放在/var/www/webapp/SpringMVC目录下,在该目录下增加ROOT目录,放入你的JavaEE网站工程,这样,你就可以通过http://SpringMVC访问你的网站了,后面少了/SpringMVC这个字串,在IP上与运行环境保持了一致。
四、其它问题
(1)
通过http://SpringMVC访问的是SpringMVC网站;
通过http://localhost访问的是Tomcat自带的网站;
我们在hosts文件中已经知道,SpringMVC和localhost都对应的IP是:127.0.0.1
那么,通过http://127.0.0.1访问的是那个网站呢?
在Host的父节点是:<Engine name="Catalina" defaultHost="SpringMVC">
从上可以看出,defaultHost="SpringMVC"决定了127.0.0.1访问哪个网站,我的设置是访问SpringMVC
本文到此就要结束了,贴上我的server.xml文件内容:
<?xml version="1.0" encoding="utf-8" ?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener"
SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="SpringMVC">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase" />
<Host name="localhost" appBase="webapps" unpackWARs="true"
autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<!--HelloMule-->
<!--
<Context path="/mule" docBase="/var/www/webapp/Mule"
workDir="/var/www/webtemp/Mule" debug="5" reloadable="false"
crossContext="true" />
-->
</Host>
<Host name="SpringMVC" appBase="/var/www/webapp/SpringMVC"
unpackWARs="true" autoDeploy="false" xmlValidation="false"
xmlNamespaceAware="false" />
</Engine>
</Service>
</Server>
(2)
首先,修改$tomcat/conf/server.xml文件。
在server.xml文件中,有一段如下:
Xml代码
<engine name="Catalina" defaultHost="localhost改为你的域名">
<host name="localhost改为你的域名" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> …… <host> </engine>
在<host></host>标签之间添加上:
Xml代码 <Context path="" docBase="myjsp" debug="0" reloadable="true" />
path是说明虚拟目录的名字,如果你要只输入ip地址就显示主页,则该键值留为空;
docBase是默认目录的路径,它默认的是$tomcat/webapps/ROOT目录,现在我在webapps目录下建了一个myjsp目录,让该目录作为我的默认目录。
debug和reloadable一般都分别设置成0和true。
Tomcat的Server.xml虚拟主机和虚拟目录的配置的更多相关文章
- 配置Tomcat的server.xml以适应web-content文件系统的位置改变
刚才把写的一对jsp.html文件夹改变了位置,然后测试的时候出现了404 后来思考,应该去重新配置tomcat的server.xml文件,修改虚拟路径对应的文件系统路径,修改为当前对应的文件系统路径 ...
- tomcat原理(一)server.xml中的host虚拟主机的理解
一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...
- Tomcat 利用server.xml进行其他盘符的其他项目映射的部署以及JSP引用其他盘符的图片(虚拟目录及虚拟路径)
Tomcat 利用server.xml进行项目映射的部署 2013-07-17 15:14 12843人阅读 评论(4) 收藏 举报 分类: web 开发(5) 版权声明:本文为博主原创文章,欢迎 ...
- Tomcat配置(二):tomcat配置文件server.xml详解和部署简介
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- Tomcat(二):tomcat配置文件server.xml详解和部署简介
Tomcat系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1. 入门示例:虚拟主机提供web服务 该示例通过设置虚拟主机来提供web服务 ...
- tomcat中server.xml配置详解(转载)(一)
转载自:https://www.cnblogs.com/starhu/p/5599773.html tomcat中server.xml配置详解 Tomcat Server的结构图如下:(该文件描述了如 ...
- 关于tomcat的server.xml里host节点配置的一些说明
其实对这个一直搞不清楚,后来公司的网站遭遇与IIS进行整合,然后上面有几个应用需要进行配置,所以对tomcat的server.xml进行了一些深入的了解 Host的节点主要是起一个对域名解析到那个虚拟 ...
- 数据库存储图片相对路径使用问题,配置tomcat的server.xml文件
我想从前端读取路径的时候,必须输入相对路径+根路径,但是我数据库中存的相对路径 接下来讲解如何通过相对路径获得照片 首先我们需要在tomcat的server.xml文件中更改属性,eslipse可以直 ...
- 本机tomcat的server.xml被还原的问题及解决办法
将tomcat的server.xml进行修改,但当eclipse发布站点后,发布tomcat中的server.xml会被还原. 原因是eclipse会将自己的tomcat配置文件对tomcat覆盖,解 ...
随机推荐
- jsp页面用java代码取随机数
<%int seconds = (int) (System.currentTimeMillis() / 1000); %> 然后在需要随机数的地方加上下面的代码: <input na ...
- Spring事务管理之编程式事务管理
© 版权声明:本文为博主原创文章,转载请注明出处 案例:利用Spring的编程式事务管理模拟转账过程 数据库准备 -- 创建表 CREATE TABLE `account`( `id` INT NOT ...
- CLR内存回收机制
代龄机制. 通过递归构建可达对象图,不可达的对象会被回收,然后CLR会矫正对象指针. 对于终止化/Finalize对象, 一开始时这些对象指针/根/引用会被放到终止化链表中,当CLR垃圾收集开始时,那 ...
- Yaml 的python 应用
1.安装yaml的python包 2.准备yaml的数据 3.yaml.load 解析yaml 3.生产yaml
- 3s 简介
"3S"技术是英文遥感技术(Remote Sensing RS).地理信息系统(Geographical information System GIS).全球定位系统(Global ...
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps Office新的App模型
BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps Office新的App模型 Office 2 ...
- mysql-proxy做客户端连接转发【外网访问内网mysql】
功能 用于外网客户端连接内网的MySQL,将此工具安装在中转服务器上. 软件版本 mysql-proxy-0.8.1-linux-rhel5-x86-64bit.tar.gz 简单的配置过程 解压后有 ...
- 脑法之中的一个 --- DEBUG与搜索算法
前年闲的蛋疼的时候,看过天津卫视的一档节目<非你莫属>,就来一堆面试者,上面几个壕.选人.记得有一期是给程序猿做的.当中有一个程序猿(好像是媛)傻不啦叽的说,哎呀,我每次DEBUG找到程序 ...
- vagrant系列四:vagrant搭建redis与redis的监控程序redis-stat
上一篇php7环境的搭建 真是火爆.仅仅两天时间,就破了我之前swagger系列的一片文章,看来,大家对搭建好开发环境真是情有独钟. 为了訪问量,我今天再来一篇redis的搭建. 当然不能仅仅是red ...
- 图解堆算法、链表、栈与队列(Mark)
原文地址: 图解堆算法.链表.栈与队列(多图预警) 堆(heap),是一类特殊的数据结构的统称.它通常被看作一棵树的数组对象.在队列中,调度程序反复提取队列中的第一个作业并运行,因为实际情况中某些时间 ...