`
obullxl
  • 浏览: 183392 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Tomcat的Server.xml虚拟主机和虚拟目录的配置

    博客分类:
  • Java
阅读更多

以前开发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上与运行环境保持了一致。

四、其它问题
通过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>

如有批评、指教、疑惑,请:obullxl@163.com
祝大家使用JAVA愉快!


------------------------------

同URL:http://hi.baidu.com/obullxl/blog/item/9b4a7006707dc27003088153.html

------------------------------

0
1
分享到:
评论

相关推荐

    tomcatserver.xml配置详解.pdf

    server.xml是Tomcat中的核心配置文件,负责配置整个服务器的运行参数和连接器信息。下面将对Tomcat server.xml中可能包含的配置知识点进行详细说明: 1. &lt;Server&gt; 标签:这是Tomcat顶层的容器,用于构建整个Tomcat...

    tomcat server.xml配置详解

    `server.xml`是Tomcat的核心配置文件,控制着Tomcat的启动、运行和停止,对性能优化、安全性提升等方面具有至关重要的作用。 ### `server`元素 `server`元素位于`server.xml`的最顶层,是Tomcat实例的根节点,由`...

    tomcat server.xml配置说明

    Tomcat Server.xml 文件是 Tomcat 服务器的核心配置文件,它定义了 Tomcat 服务器的整体结构和行为。在这个文件中,我们可以定义 Server、Service、Engine、Host 等元素,这些元素共同构成了 Tomcat 服务器的架构。 ...

    tomcat_server.xml_配置详解

    `&lt;Host&gt;`元素代表一个虚拟主机,它有自己的名称(`name`属性)和应用程序基础目录(`appBase`)。`unpackWARs`属性决定是否自动解压WAR文件。`reloadable`属性允许在不重启Tomcat的情况下自动加载应用程序的更新。 ...

    tomcat server.xml 配置

    ### Tomcat Server.xml 配置详解 #### 一、引言 在当今互联网技术领域,Apache Tomcat作为一款开源的应用服务器,在Java Web开发中扮演着举足轻重的角色。它支持运行Servlet和JSP,是Java Web应用部署的常用平台之...

    tomcat服务器的Server.xml配置详解.docx

    Tomcat作为一款广泛应用的开源轻量级Web应用服务器,其核心配置文件Server.xml对于服务器的管理和优化至关重要。本文将深入解析Server.xml的结构和配置要素,帮助读者更好地理解和操作Tomcat服务器。 Server.xml...

    Tomcat server.xml配置文件详解

    he.catalina.Service 接口定义,它是 Tomcat 服务器的核心组成部分,负责管理一组 Connector 和一个 Engine。Service 可以通过多个 ...理解并熟练掌握 `server.xml` 的配置是优化和管理 Tomcat 服务器性能的关键步骤。

    tomcat6 server.xml 详解

    本文将深入探讨Tomcat6版本中的server.xml,揭示其中的核心配置元素,帮助开发者更好地理解和定制服务器环境。 server.xml是Tomcat的主要配置文件,它定义了服务器的全局属性,包括端口设置、连接器、Context(应用...

    tomcat 配置文件 server.xml配置

    在探讨`server.xml`配置文件之前,让我们先明确一点:`server.xml`是Apache Tomcat服务器的核心配置文件,它控制着Tomcat的启动、运行和停止过程。对于任何希望深入理解和优化Tomcat性能的开发者来说,熟悉并掌握`...

    Tomcat的server.xml文件

    首先,`server.xml`文件位于Tomcat的`conf`目录下,它是Tomcat启动时加载的第一个配置文件。这个XML文件按照特定的结构定义了服务器的各个部分,包括`&lt;Server&gt;`, `&lt;Service&gt;`, `&lt;Connector&gt;`, 和 `&lt;Engine&gt;`等元素。...

    tomcat的server.xml标签全解析.

    在`server.xml`中,每个组件都有其特定的属性和子元素,如Connector的端口号、协议类型,Engine的默认Host,Host的虚拟主机路径,以及Context的文档基目录等。正确配置这些元素对于优化Tomcat的性能、安全性以及多...

    tomcat server.xml元素详细说明

    作为Apache Tomcat服务器的主要配置文件,server.xml控制着Tomcat服务器的几乎所有方面,从最基本的服务器启动到复杂的连接器设置、服务定义、引擎配置以及虚拟主机管理等。本文将详细介绍server.xml文件中的关键...

    tomcatserver.xml详解.pdf

    根据提供的文件信息,内容涉及到Apache Tomcat的配置文件server.xml的详细解析。server.xml是Tomcat服务器的核心配置文件,它定义了Tomcat服务器的各种组件,如连接器(Connector)、服务(Service)、引擎(Engine...

    tomcat5.5.X域名转向和连接池配置的server.xml文件

    Tomcat 5.5.x的`server.xml`文件是服务器配置的核心,它控制着虚拟主机、连接池等关键功能。理解并正确配置这些参数对于优化Web应用的性能和用户体验至关重要。通过本文的讲解,你应该能掌握如何在`server.xml`中...

    Tomcat设置虚拟目录的方法, 不修改server.xml

    对于Apache Tomcat服务器而言,通常的做法是通过编辑`server.xml`来配置虚拟主机或者上下文路径。不过,有时为了方便管理和减少对核心配置文件的更改,我们可以采取另一种方式——在`conf/Catalina/localhost`目录下...

    tomcat-server.xml详解

    `&lt;Host&gt;`元素代表虚拟主机,`name`属性定义了主机名,`appBase`属性指定应用程序的基础目录,`unpackWARs`属性控制是否自动解压缩WAR文件,`reloadable`属性若设为true,将允许Tomcat在不重启的情况下自动加载应用...

    tomcat_server.xml_配置详解.doc

    本文将对`server.xml`中的关键元素及其属性进行详尽解读,帮助开发者更好地理解和掌握Tomcat的配置机制。 ### 1. &lt;Server&gt; 元素:容器的顶层定义 `&lt;Server&gt;`元素是Tomcat实例的最高层级元素,代表整个容器。它由`...

    tomcat中server.xml详解

    在Apache Tomcat服务器中,`server.xml`是一个至关重要的配置文件,它定义了服务器的基本结构和行为。这个文件位于Tomcat安装目录下的`conf`子目录中,是整个Tomcat配置的核心。本文将深入探讨`server.xml`的各个...

    Tomcat server.xml文件设置

    总的来说,理解并熟练配置 `Tomcat` 的 `server.xml` 文件对于管理和优化 Web 应用的性能、安全性和可用性至关重要。通过精细调整这些配置,可以实现多虚拟主机、资源管理、负载均衡等各种高级功能。

    tomcat 8.5.100

    - **server.xml**:这是Tomcat的主要配置文件,包含了关于连接器、监听器、 Realm(认证)和其他服务器设置的信息。 - **web.xml**:每个Web应用都有一个web.xml,用于定义Servlet、过滤器和监听器等。 - **...

Global site tag (gtag.js) - Google Analytics