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

tomcat配置虚拟主机

2016-06-14 23:08 387 查看
原址:点击打开链接

  在目前,很多服务器都是一台服务器对外可以访问很多个javaEE的项目,这种实现方式就需要在tomcat里面配置虚拟主机了!下面就说说如何配置虚拟主机:

找到tomcat的安装目录,到TOMCAT_HOME/apache-tomcat7/conf目录下,找到server.xml这个文件,打开该文件,在该文件中找到关于Engine这个子节点

[html] view
plain copy

<Engine name="Catalina" defaultHost="localhost">  

上面配置了一个defaultHost,其中的localhost表示为默认的访问方法!  我们需要配置自己的就需要在Engine节点中添加Host节点,默认的有一个host如下:

[html] view
plain copy

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">  

这个里面的name表示的是访问本地的localhost地址,appBase表示项目指定的父位置,当前的webapps代表:TOMCAT_HOME/apache-tomcat7/webapps这个位置,这个位置也是tomcat的默认的存放javaEE项目位置!

 

下面是我自己配置的一个虚拟主机:

[html] view
plain copy

<Host name="www.abc.net" appBase="/var/JavaServer/test" unpackWARs="true" autoDeploy="true">      

            <Alias>abc.com</Alias>    

            <Context path="/hello" docBase="/var/www/html/hello" debug="0" privileged="true"/>   

        </Host>  

 

详细介绍一下:Host节点代表为一个虚拟主机,name表示需要访问的域名,这个域名是已经注册的域名!当前配置的域名:www.abc.net  在Host下有一个子节点,叫Alias,这个里面配置的是  另外一个域名,就是说,一个虚拟主机,可以使用多个域名!

那么访问www.abc.net  和abc.com是一样的!

 

appBase需要你指定的项目父路径,在当前的路径下可以存放多个项目  ,我们可以把项目打包或者放文件夹放在/var/JavaServer/test这个目录下

 unpackWARs="true"  表示当发现在/var/JavaServer/test有打包的war项目的话,就开启解压功能!

autoDeploy="true"    表示支持热部署!

 

下面说说在Host节点下的Context节点,这个就是部署一个项目,但是这个项目不是在appBase目录下,他的路径在/var/www/html/hello这个目录下,path表示对外访问的名称, 这样使得tomcat灵活多变 !

最后需要建立虚拟主机名和IP地址之间的映射,建立虚拟主机名和IP地址的映射有两种方法:

1、修改Hosts文件
2、使用DNS服务器(Domain Name System)
演示方法1:在XP中修改C:\WINDOWS\system32\drivers\etc\hosts文件
127.0.0.1       localhost
127.0.0.1       www.xy1.com
127.0.0.1       www.xy2.com
比如在virtualHost1中有test.html,通过http://www.xy1.com/test.html即可访问。

在server.xml中使用<Host>标签包裹,其中Host标签的元素有:

name : 指出这个虚拟主机的名字,可以使域名。

appBase : 如果要war文件自动部署的话指定这个目录,这个目录下的war文件会被自动部署。

unpackWARs : 是否对appBase指定的目录下的war文件自动解压,true为自动解压,false为不自动解压,直接运行war文件。

autoDeploy:设置是否在tomcat运行期间自动更新项目(包括在appBase添加新的项目,修改,删除,更新),true时,会自动更新appBase下的war项目,web.xml文件的更改,以及Host下指定<Context> 标签定制的项目(在appBase下的)。

(http://tomcat.apache.org/tomcat-7.0-doc/deployer-howto.html#Deploying_on_a_running_Tomcat_server)

在Host标签中,还可以添加子标签:

<Alias>域名</Alias>

指定域名,可设置多个。支持正则.

<Context path="" docBase="/www/a.war" reloadable="true" />

context标签是用来指定自定义的网站的url,以及映射实际的系统里的物理路径。

例如:<Context path="/abc" docBase="/www/a.war" reloadable="true" />时,我们访问www.xxx.com/abc代替www.xxx.com/a。

path :是要重命名后的路径,用/代表根路径,例如/abc

docBase: 是指定war的真实的物理路径,可以不在appBase下。

reloadable:为true时会自动更新,context指定的应用。

关于appBase和docBase路径的区别和关系:

appBase:是可以自动部署war的路径,默认是在tomcat的安装路径下的webapps,如果 用tomcat的默认的话使用相对路径,也可以使用绝对路径指定一个非tomcat默认的路径。

docBase:与appBase没什么直接关系,它指出特定的应用的单独设置。如果war包在 appbase下,可以使用相对路径,比如在appBase路径下有,a.war,设置 docBase时可以用a来设置。常用使用绝对路径定义。

标签:Valve:

设置Host的访问日志

classname : 设置使用哪个类来处理tomcat的访问日志

directory : 设置log日志的存放路径,默认log是在tomcat的安装路径下logs目录下

prefix : 指定访问日志的前缀,也可以理解为名字。

suffix : 指定访问日志的后缀,可以理解为扩展名。

pattern : 为日志的记录格式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: