本文主要是介绍Tomcat的Server.xml虚拟主机和虚拟目录的配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1 server.xml虚拟主机和虚拟目录
- 1.1 修改端口
- 1.2 增加虚拟目录
- 1.2.1 最简单的方式
- 1.2.2 自定义
- 1.3 增加虚拟主机
- 1.3.1 修改hosts文件,增加主机名
- 1.3.2 修改配置文件
- 1.3.3 目录设置
- 1.4 其它问题
- 1.5 server.xml文件
1 server.xml虚拟主机和虚拟目录
以前开发JavaEE
网站都布置在Tomcat
下,布置目录一般为$CATALINA_HOME/webapps/WebName
,所以要访问网站,则在http://localhost
后必须要加上上下文路径(ContextPath)/WebName
,而运行环境一般为http://www.abc.com
,上下文路径为空。
这样就造成了开发环境与运行环境的差异,虽然在JSP
中可以通过<%=request.getContextPath()%>
解决,但如果换成其它模板,比如Velocity
,就又不行了。
Tomcat 5
和Tomcat 6
的配置文件为:$CATALINA_HOME/conf/server.xml
,其它的版本的Tomcat
的配置文件同此
说明:
虚拟主机在server.xml
为Host
,虚拟目录为Context
。
1.1 修改端口
Tomcat
默认的WEB
端口为8080
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
注意
是修改HTTP
协议的,也就是protocol="HTTP/1.1"
的,不是其他的。
1.2 增加虚拟目录
1.2.1 最简单的方式
直接把JavaEE
网站放在$CATALINA_HOME/webapps
目录下了,然后通过http://localhost/WebName
,WebName
为网站的目录名;
1.2.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的虚拟目录了,当然,这里的名字完全依个人而定的。
注意:
在tomcat 5.5
之后
不推荐在server.xml
中进行配置,而是在/conf/context.xml
中进行独立的配置。因为 server.xml
是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载。而 context.xml
文件则不然,tomcat
服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器
1.3 增加虚拟主机
其实这才是本文要说的重点,也就是本文开头说的那种案例。每开发一个网站,都是通过http://localhost/WebName
的形式访问,是不是很麻烦?
1.3.1 修改hosts文件,增加主机名
Linux
系统的hosts
文件为/etc/hosts
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
1.3.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
了。
1.3.3 目录设置
主机SpringMVC
的WEB
文件全放在/var/www/webapp/SpringMVC
目录下,在该目录下增加ROOT
目录,放入JavaEE
网站工程,这样,你就可以通过http://SpringMVC
访问你的网站了,后面少了/SpringMVC
这个字串,在IP
上与运行环境保持了一致。
1.4 其它问题
通过http://SpringMVC
访问的是SpringMVC
网站;
通过http://localhost
访问的是Tomcat
自带的网站;
在hosts
文件中已经知道,SpringMVC
和localhost
都对应的IP
是:127.0.0.1
那么,通过http://127.0.0.1
访问的是那个网站呢?
在Host
的父节点是:<Engine name="Catalina" defaultHost="localhost">
从上可以看出,defaultHost="localhost"
决定了127.0.0.1
访问哪个网站,如果设置是访问SpringMVC
就访问SpringMVC
1.5 server.xml文件
本文到此就要结束了,贴上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="8080" 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>
这篇关于Tomcat的Server.xml虚拟主机和虚拟目录的配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!