茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1417386 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
PIMG_00058.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

爪哇咖啡屋 : [轉貼]Tomcat設置虛擬目錄的方法, 不修改server.xml

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15739
[轉貼]Tomcat設置虛擬目錄的方法, 不修改server.xml
在tomcat文件夾的conf\catalina\localhost(對於Tomcat6版本及其以上,需要自己創建catalina和localhost這兩個文件夾)
增加project .xml文件(該文件名的project要和下面的「path=「/xxx"」的xxx相同)
文件內容:
<Context path="/project" reloadable="true" docBase="E:\javastudio\oob" workDir="E:\javastudio\oob\work" />

docBase是項目文件夾的web-inf文件夾的上一層目錄
workDir是指Tomcat解析Jsp轉換為Java文件,並編譯為class存放的文件夾,設置在項目文件夾裡面,可以避免移植到其他地方首次讀取jsp文件需要重新解析 。
一般格式:項目文件夾\work
reloadable是指可以重新加載,一般設置為true,方便使用,不需要經常重啟Tomcat。
以後啟動Tomcat,在瀏覽器輸入[url]http://localhost:8080/project[/url]就能訪問該項目的welcome文件。

***************
為什麼要不修改server.xml呢?在Tomcat6的doc幫助文檔中,官方是不提倡修改server.xml來添加虛擬目錄的!
而我認為,以上使用的方法,非常方便於項目的移植,移植後,只有修改docBase和workDir的值就行了,甚至可以去掉workDir這個屬性!
本文出自 「追求完美」 博客,請務必保留此出處http://icansoft.blog.51cto.com/268543/49993
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15739
[轉貼]TomCat 多虛擬站點配置
在網絡上找了許久,沒有一個真正可以解決TomCat多虛擬站點的配置問題的,經過試驗和參考官方網站資料,終於解決了這個問題.
參考資料:Apache Tomcat文檔http://tomcat.apache.org/tomcat-5.0-doc/config/host.html

在文中有這麼一段話:
One or more Host elements are nested inside an Engine element. Inside the Host element, you can nest Context elements for the web applications associated with this virtual host. Exactly one of the Hosts associated with each Engine MUST have a name matching the defaultHost attribute of that Engine.

譯文:Engine元素中需要一個或多個Host元素,在Host元素裡面,你必需有Context元素讓網站應用程序與虛擬主機連接上,嚴密地說,每一個主機所關聯的引擎必須有一個名字跟那個引擎默認的主機屬性匹配.
可知,在Engine元素裡面可以有多個Host,那麼說,可以有在一個Engine裡面設置多個服務器了,這正是我們需要的.每個Host元素裡面要有一個Context元素.
根據conf\server.xml裡面的說明和範例,我樣可以編寫出下面一個配置文件:
我把配置文件全部粘出來了,但大部分都是默認的,還有註釋部分。大可不理,只修改了幾部分,後面都有說明!
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector
          port="80"               maxHttpHeaderSize="8192"
          maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
          enableLookups="false" redirectPort="8443" acceptCount="100"
          connectionTimeout="20000" disableUploadTimeout="true"  URIEncoding="GB2312"/>
<!-- Note : To disable connection timeouts, set connectionTimeout value to 0 -->

<!-- Note : To use gzip compression you could set the following properties :
          compression="on"
          compressionMinSize="2048"
          noCompressionUserAgents="gozilla, traviata"
          compressableMimeType="text/html,text/xml"
-->

<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
<!--
<Connector port="8443" maxHttpHeaderSize="8192"
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
           enableLookups="false" disableUploadTimeout="true"
           acceptCount="100" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" />
-->

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

<!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
<!-- See proxy documentation for more information about using this. -->
<!--
<Connector port="8082"
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
           enableLookups="false" acceptCount="100" connectionTimeout="20000"
           proxyPort="80" disableUploadTimeout="true" />
-->

<!-- An Engine represents the entry point (within Catalina) that processes
     every request.  The Engine implementation for Tomcat stand alone
     analyzes the HTTP headers included with the request, and passes them
     on to the appropriate Host (virtual host). -->

<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
-->

<!-- Define the top level container in our container hierarchy -->
<Engine name="Catalina" defaultHost="ycoe.vicp.net">

        <!-- Define the default virtual host
             Note: XML Schema validation will not work with Xerces 2.2.
        -->
        <Host name="ycoe.vicp.net" appBase="webapps" unpackWARs="true"
        xmlValidation="false" xmlNamespaceAware="false">

          <Context docBase="D:\WORKS\EShop\EWebShop" path="/" reloadable="true"
                   workDir="D:\WORKS\EShop\Tomcat\work\EWebShop">
          </Context>
        </Host>
        <Host name="yvor.vicp.net" appBase="webapps"unpackWARs="true" xmlValidation="false"
        xmlNamespaceAware="false">

          <Context docBase="D:\WORKS\YCOE\ycoe" path="/" reloadable="true" workDir="D:\WORKS\YCOE\Tomcat\work\ycoe">
          </Context>
        </Host>
</Engine>

</Service>
</Server>


可以看到,這裡修改了
81行修改了兩個參數值:
<Connector port="80" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"  URIEncoding="GB2312"/>

修改port是修改Tomcat的服務端口,默認為8080,URIEncoding改為GB2312是為了使用中文路徑但不建議使用.

125行:
<Engine name="Catalina" defaultHost="ycoe.vicp.net">

在下面配置的中,必須有一個Host和這裡的defaultHost的值相同!

192行:
<Host name="ycoe.vicp.net" appBase="webapps" unpackWARs="true" xmlValidation="false" xmlNamespaceAware="false">


然後再添加360行開始的元素:
<Host name="yvor.vicp.net" appBase="webapps"unpackWARs="true" xmlValidation="false" xmlNamespaceAware="false">
  <Context docBase="D:\WORKS\YCOE\ycoe" path="/" reloadable="true"
  workDir="D:\WORKS\YCOE\Tomcat\work\ycoe"></Context>
</Host>

這裡是設置我們的第二個虛擬網站的域名.
註:裡面的內容並不是我們實際應用的,我們可以通過另一種比較方便而且容易修改的方式來設置這些參數.下面我們來做這方面的配置:
1.在%CATALINA_HOME %\conf\Catalina目錄下創建ycoe.vicp.net和yvor.vicp.net兩個文件夾.
2.在這兩個文件夾裡面創建ROOT.xml文件(要以ROOT.xml為名稱,否則雖然不會出錯,但不能用http://ycoe.vicp.net或http://yvor.vicp.net直接訪問)
3.ROOT.xml的內容如下:
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="D:\WORKS\EShop\EWebShop" path="/" reloadable="true"
workDir="D:\WORKS\EShop\Tomcat\work\EWebShop">
</Context>


根據自己的實際情況,設置這裡的docBase 和workDir的路徑.docBase是說明文檔的路徑,workDir是網站程序的路徑,如果用相對路徑,則是在%CATALINA_HOME %\webapp目錄下,path是訪問的路徑

你也可以在這兩個目錄下創建其它xml的文件

但是這時你通過瀏覽器訪問http://ycoe.vicp.net或http://yvor.vicp.net時並不能瀏覽到你的網頁,因為它把這些網址解析到廣域網上去了,除非你用域名綁定.
為了讓局域本機不把這兩個網址解析到廣域網上去.我們可以通過以下設置實現(Windows XP,其它操作系統沒有試過):
1.用文本編輯器打開C:\WINDOWS\system32\drivers\etc目錄的hosts文件
2.在內容最後另起一行,添加以下內容:
127.0.0.1       ycoe.vicp.net
127.0.0.1       yvor.vicp.net

可以由上面的註釋部分瞭解它的作用:
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

到這裡,全部的配置已經完成了.重啟Tomcat,打開http://ycoe.vicp.net或http://yvor.vicp.net就可以看到預期的效果了.呵呵
下載相關文件http://www.cnblogs.com/Files/ycoe/Catalina.rar
原文出自:http://ycoe.cnblogs.com/archive/2006/04/18/377737.html
作者:YCOE
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15739
[轉貼]tomcat6.0 在server.xml中配置兩個 Host,多虛擬主機,不同url訪問
tomcat6.0 在server.xml中配置兩個 Host,多虛擬主機,不同url訪問
<Host name="localhost"  appBase="webapps"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
 <Context path=""  docBase="F:\myworkspace\app1\WebRoot"
          workDir="F:\myworkspace\app1\WebRoot\work" reloadable="true">
 <Resource name="jdbc/erp" auth="Container" type="javax.sql.DataSource"
           maxActive="10000" maxIdle="3000" maxWait="10000"
           username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
           url="jdbc:mysql://localhost:3306/app1?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&failOverReadOnly=false"/>
 </Context>
</Host>

<Host name="heisetoufa"  appBase="webapps" unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
  <Context path=""  docBase="F:\myworkspace\app2\WebRoot"
           workDir="F:\myworkspace\app2\WebRoot\work" reloadable="true">
  <Resource name="jdbc/erp" auth="Container" type="javax.sql.DataSource"
            maxActive="10000" maxIdle="3000" maxWait="10000"
            username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost:3306/app2?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&failOverReadOnly=false"/>
  </Context>
</Host>

然後要映射一下:
xp系統是:
系統盤:\WINDOWS\system32\drivers\etc\hosts 需要做映射
win2k系統是Winnt目錄下

內容為:
127.0.0.1       192.168.1.1
127.0.0.1/app2       heisetoufa

訪問時:
http://localhost:8080找的是第一個app1的項目
http://heisetoufa:8080找的就是第二個app2的項目

黑色頭髮:http://heisetoufa.iteye.com


原文出處:tomcat6.0 在server.xml中配置两个<Host,多虚拟主机,不同url访问 - 黑色头发 - ITeye技术网站
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|