pasha

           

          Tomcat server.xml 中文說明文檔

          <Server port="8005" shutdown="SHUTDOWN" debug="0">
          <!-- 這些指令組件關(guān)閉JMX MBeans支持 -->
          <!-- 你也可以通過包含你自己的mbean描述文件配置自定義的組件,然后設(shè)置
                “descriptors”屬性為以“;”為分隔的文件名列表嚴將它添加到默認列表
                中,例如:descriptors="/com/myfirm/mypackage/mbean-descriptor.xml"。
          -->
          <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" debug="0" />
          <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" debug="0" />
          <!-- Global JNDI resources -->
          <!-- 全局JNDI資源 -->
          <GlobalNamingResources>
                <!-- 出于示例目的的測試入口 -->
                <Environment name="simpleValue" type="java.lang.Integer" value="30" />
                <!-- 可編輯的,用來通過UserDatabaseRealm認證用戶的用戶數(shù)據(jù)庫 -->
                <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase"
                 description="User database that can be updated and saved">
                </Resource>
                <ResourceParams name="UserDatabase">
                 <parameter>
                  <name>factory</name>
                  <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
                 </parameter>
                 <parameter>
                  <name>pathname</name>
                  <value>conf/tomcat-users.xml</value>
                 </parameter>
                </ResourceParams>
          </GlobalNamingResources>
          <!-- 一個“Service”是一個或多個共用一個單獨“Container”(容器)的“Connectors”
                組合(因此,應(yīng)用程序在容器中可見)。通常,這個容器是一個“Engine”
                (引擎),但這不是必須的。
                注意:一個“Service”自身不是一個容器,因此,在這個級別上你不可定義
                諸如“Valves”或“Loggers”子組件。
          -->
          <!-- 定義Tomcat的標準獨立服務(wù) -->
          <Service name="Catalina">
                <!-- 一個“Connector”(連接器)代表一個請求被接收和應(yīng)答所需要的端點。每個連
                 接器通過相關(guān)的“Container”(容器)處理請求。
                 默認情況下,一個非SSL的HTTP/1.1的連接器被綁定在端口8080。你也可以通過
                 根據(jù)后面的使用說明并取消第二個連接器入口的注釋,在端口8443上建立一個
                 SSL HTTP/1.1的連接器。開放SSL支持需要下面幾步(參見Tomcat 5文檔中怎樣
                 配置SSL的說明以取得更多的詳細信息):
                 * 如果你的JDK是1.3或1.3以前的版本,下載安裝JSSE 1.0.2或以后版本,并放
                 置JAR文件到“$JAVA_HOME/jre/lib/ext”目錄下。
                 * 帶一個“changeit”的口令值執(zhí)行:
                 %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
                 $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (UNIX)
                 來生成它自己的證書私鑰。
                 默認情況下,當(dāng)一個web應(yīng)用程序調(diào)用請求時,DNS查詢是可行的。這將對性能造
                 成一些不利的影響,因此,你可以將“enableLookups”設(shè)置為“false”來關(guān)閉DNS
                 查詢。當(dāng)DNS查詢被關(guān)閉時,request.getRemoteHost()將返回包含遠程客戶IP地
                 址的字符串。
                -->
                <!-- 在8080端口上定義一個非SSL的HTTP/1.1連接器 -->
                <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                 enableLookups="false" redirectPort="8443" acceptCount="100"
                 debug="0" connectionTimeout="20000" disableUploadTimeout="true" />
                <!-- 注意,要關(guān)閉連接超時,將connectionTimeout設(shè)置為0 -->
                <!-- 注意:要使用gzip壓縮需要設(shè)置如下屬性:
                 compression="on"
                 compressionMinSize="2048"
                 noCompressionUserAgents="gozilla,traviata"
                 compressableMimeType="text/html,text/xml"
                -->
                <!-- 在端口8443上定義一個SSL的HTTP/1.1的連接器 -->
                <!--
                 <Connector port="8443"
                 maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                 enableLookups="false" disableUploadTimeout="true"
                 acceptCount="100" debug="0" scheme="https" secure="true"
                 clientAuth="false" sslProtocol="TLS" />
                -->
                <!-- 在端口8009上定義一個Coyote/JK2 AJP 1.3連接器 -->
                <Connector port="8009" enableLookups="false" redirectPort="8443"
                 debug="0" protocol="AJP/1.3" />
                <!-- 在8082端口上定義一個代理HTTP/1.1連接器 -->
                <!-- 參見代理文檔以取得這里使用屬性的更多的信息。 -->
                <!--
                 <Connector port="8082"
                 maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                 enableLookups="false"
                 acceptCount="100" debug="0" connectionTimeout="20000"
                 proxyPort="80" disableUploadTimeout="true" />
                -->
                <!-- 一個“Engine”(引擎)代表處理每個請求的入口點(在Catalina內(nèi))。這個Tomcat
                 的標準獨立引擎實現(xiàn)分析包含在請求中的HTTP頭信息,并將請求傳送到適當(dāng)?shù)闹鳈C
                 或虛擬主機上。-->
                <!-- 你應(yīng)該這樣設(shè)置jvmRoute以便在JK/JK2通道上支持負載平衡:
                 <Engine name="Standalone" defaultHost="localhost" debug="0" jvmRoute="jvm1">
                -->
                <!-- 在我們的容器體系中定義最高級別的容器 -->
                <Engine name="Catalina" defaultHost="localhost" debug="0">
                 <!-- 請求轉(zhuǎn)儲器值轉(zhuǎn)儲非常有用的通過Tomcat這個實例接收到的所有請求的,關(guān)于
                  接收到的請求頭和cookies,以及發(fā)送出的回應(yīng)頭和cookies的調(diào)試信息。如果
                  你只在意一個特定的虛擬主機或者一個特定應(yīng)用程序的請求,在對應(yīng)的<Host>
                  或<Context>入口中套用這個元素。
                  對于所有的Servlet(小服務(wù)程序)2.4來所,在示例程序中檢驗
                  “RequestDumperFilter”過濾是非常容易的(這個過濾器源代碼可以在
                  “$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters”下找到。
                  請求轉(zhuǎn)儲默認情況下是關(guān)閉的,如果要使用它,取消下面行的注釋符。-->
                 <!--
                  <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
                 -->
                 <!-- 全局日志設(shè)置,除非在更低的級別上覆蓋它的設(shè)置 -->
                 <Logger className="org.apache.catalina.logger.FileLogger"
                  prefix="catalina_log." suffix=".txt" timestamp="true" />
                 <!-- 因為這個Realm(區(qū)域)在這兒,因此這個實例將被全局共享。 -->
                 <!-- 這個Realm(區(qū)域)使用在全局JNDI資源下,由“UserDatabase”配置的用戶
                  數(shù)據(jù)庫。通過使用Realm將使對于這個用戶數(shù)據(jù)庫的任何編輯都將會立即可用
                  <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                  debug="0" resourceName="UserDatabase"/>-->
                 <!-- 注釋掉舊有的Realm以便我們能很快速的恢復(fù)舊有配置。 -->
                 <!--
                  <Realm className="org.apache.catalina.realm.MemoryRealm" />
                 -->
                 <!-- 下面的屬性用于從儲存在數(shù)據(jù)庫或從JDBC通道中得到的Realm以取代上面的
                  Realm配置。-->
                 <!--
                  <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
                  driverName="oracle.jdbc.driver.OracleDriver"
                  connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
                  connectionName="scott" connectionPassword="tiger"
                  userTable="users" userNameCol="user_name" userCredCol="user_pass"
                  userRoleTable="user_roles" roleNameCol="role_name" />
                 -->
                 <!--
                  <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
                  driverName="sun.jdbc.odbc.JdbcOdbcDriver"
                  connectionURL="jdbc:odbc:CATALINA"
                  userTable="users" userNameCol="user_name" userCredCol="user_pass"
                  userRoleTable="user_roles" roleNameCol="role_name" />
                 -->
                 <!-- 定義默認的虛擬主機
                  注意:XML模式確認將不能與Xerces 2.2同工作。
                 -->
                 <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true"
                  autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
                  <!--
                   為這個結(jié)點定義一個群集,通過定義這個元素,意味著每個管理員都將被改變。
                   因此,當(dāng)運行一個群集時,只有確認在必須被聚集和移除其他的地方有你的
                   web軟件。
                   一個群集有下面這些參數(shù):
                   className = 這個群集類的全限定名
                   name = 你的群集的描述名,可以是任何描述
                   debug = 調(diào)試級別,更高意味著更多的輸出
                   mcastAddr = 多播地址,所有的節(jié)點都必須有同樣的多播地址
                   mcastPort = 多播端口,對所有的節(jié)點都必須有同樣的多播端口
                   mcastBindAddr = 綁定多播套接字到一個指定的地址
                   mcastTTL = 多播生存期,如果你想要限制你的廣播的話
                   mcastSoTimeout = 多播讀取超時
                   mcastFrequency = 發(fā)送“I'm alive”(我還活著)信息的間隔毫秒數(shù)
                   mcastDropTime = 多長時間沒有收到“I'm alive”就將這個節(jié)點標識為死節(jié)點(單位:毫秒)
                   tcpThreadCount = 用于處理重復(fù)引入請求的線程數(shù),最好是每個節(jié)點都有相同的線程數(shù)
                   tcpListenAddress = 在有多塊以太網(wǎng)卡的主機上的監(jiān)聽TCP群集請求的地址(綁定地址),auto意味著地址由InetAddress.getLocalHost().getHostAddress()取得。
                   tcpListenPort = tcp監(jiān)聽端口
                   tcpSelectorTimeout = 在操作系統(tǒng)中有java.nio喚醒錯的情況下,使用Selector.select()的超時
                   毫秒數(shù)。設(shè)為0則沒有超時限制
                   printToScreen = true意味著管理員的相關(guān)信息也將打印輸出到std.out
                   expireSessionsOnShutdown = true 意味著
                   useDirtyFlag = true意味著我們只能在調(diào)用setAttribute,removeAttribute后才能復(fù)制一個會話;
                   false意味著在每個請求后復(fù)制會話。
                   false意味著復(fù)制將以下列代碼方式工作:
                   <%
                   HashMap map = (HashMap)session.getAttribute("map");
                   map.put("key","value");
                   %>
                   replicationMode = 可以是“pooled”、“synchronous”或者“asynchronous”
                   * Pooled意味著在多個套接字上同步進行復(fù)制。例如,先復(fù)制數(shù)據(jù),然后請求返回。
                   這與“synchronous”相同,除了它使用一個套接字池,因此,它是多線程的。它是
                   最快和最高級的設(shè)置,使用這個配置也增加了處理復(fù)制的tcp線程的域。
                   * Synchronous指執(zhí)行請求的線程,它也是向其他節(jié)點復(fù)制數(shù)據(jù)的線程,并且直到
                   所有的節(jié)點都己經(jīng)收到信息后才返回。
                   * Asynchronous,對每個群集節(jié)點而言,這是一個特別的“sender”(發(fā)送者)線程,
                   因此請求線程將復(fù)制請求排隊到一個小隊列中,然后,返回給用戶。
                   這個小隊列是一個當(dāng)會話被添加到隊列中,而從先前的請求中,同一個會話己經(jīng)存在
                   ,這個會話將被放置在隊列中以代替重復(fù)的兩個請求。這幾乎從不會發(fā)生,除非存在
                   較大的網(wǎng)絡(luò)延遲。
                  -->
                  <!-- 當(dāng)配置群集時,你也添加一個值來捕獲所有傳入的請求,在請求結(jié)束時,這個會話可能被子復(fù)制,
                   也可能不被復(fù)制。一個會話是否復(fù)制取決于下列條件是否發(fā)生:
                   1. useDirtyFlag為真,或者setAttribute或者removeAttribute己經(jīng)被調(diào)用。
                   2. 會話己經(jīng)存在(己經(jīng)被創(chuàng)建了)。
                   3. 請求沒有被“filter”屬性所捕獲。
                   這個filter(過濾器)屬性用于過濾那些不能修改會話的請求,因此,我們在這個請求結(jié)束后不復(fù)制
                   會主。這個過濾器是消極的,例如,你向過濾器發(fā)送了一些東西,然后被過濾出去,在那個匹配的過
                   濾器上不會發(fā)生復(fù)制。
                   過濾器屬性以分號為分隔,因此你不能換行,即使你想這么做。
                   filter=".*\.gif;.*\.js;"意味著在進行以.gif和.js結(jié)束的URI請求后不復(fù)制會話。
                  -->
                   <!--
                   <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
                   managerClassName="org.apache.catalina.cluster.session.DeltaManager"
                   expireSessionsOnShutdown="false"
                   useDirtyFlag="true">
                   <Membership
                   className="org.apache.catalina.cluster.mcast.McastService"
                   mcastAddr="228.0.0.4"
                   mcastPort="45564"
                   mcastFrequency="500"
                   mcastDropTime="3000"/>
                   <Receiver
                   className="org.apache.catalina.cluster.tcp.ReplicationListener"
                   tcpListenAddress="auto"
                   tcpListenPort="4001"
                   tcpSelectorTimeout="100"
                   tcpThreadCount="6"/>
                   <Sender
                   className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                   replicationMode="pooled"/>
                   <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
                   filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>
                   </Cluster>
                  -->
                  <!-- 通常,對每一個應(yīng)用程序,用戶必須逐個的認證他們自己。當(dāng)他們遇到被
                   某種安全約束所保護的資源時,如果你想讓用戶只在第一次被認證,那么,
                   取消下面入口行的注釋,然后在這個虛擬主機中包含這個用戶的,橫跨所有
                   web應(yīng)用程序的用戶身份識別。-->
                  <!--
                   <Valve className="org.apache.catalina.authenticator.SingleSignOn"
                   debug="0"/>
                  -->
                  <!-- 這個虛擬主機的所有請求的訪問日志過程。默認情況下,日志文件被創(chuàng)建在相對
                   于$CATALINA_HOME目錄下的logs目錄下。通過directory屬性,你也可以指定一個
                   不同的目錄,如果你想的話。可以使用相對路徑(相對于$CATALINA_HOME),也
                   可以使用絕對路徑。-->
                  <!--
                   <Valve className="org.apache.catalina.valves.AccessLogValve"
                   directory="logs" prefix="localhost_access_log." suffix=".txt"
                   pattern="common" resolveHosts="false"/>
                  -->
                  <!-- 與這個虛擬主機有關(guān)系所有上下文所共享的日志。默認情況下(使用FileLogger時),
                   日志文件被創(chuàng)建在相對于$CATALINA_HOME目錄下的logs目錄下。如果你希望,你也可
                   以給directory指定一個不同的路徑。可以使用相對于$CATALINA_HOME的相對路徑,也
                   可以使用絕對路徑。-->
                  <Logger className="org.apache.catalina.logger.FileLogger" directory="logs"
                  prefix="localhost_log." suffix=".txt" timestamp="true" />
          <Context path="web上下文路徑" docBase="虛擬目錄路徑" reloadable="true" debug="0"> </Context>
                 </Host>
                </Engine>
          </Service>
          </Server>

          在tomcat文件夾的conf\catalina\localhost(對于Tomcat6版本及其以上,需要自己創(chuàng)建catalina和localhost這兩個文件夾)
          增加project .xml文件(該文件名的project要和下面的“path=“/xxx"”的xxx相同)
          文件內(nèi)容:
          <Context path="/project" reloadable="true" docBase="E:\javastudio\oob" workDir="E:\javastudio\oob\work" />
          docBase是項目文件夾的web-inf文件夾的上一層目錄 workDir是指Tomcat解析Jsp轉(zhuǎn)換為Java文件,并編譯為class存放的文件夾,設(shè)置在項目文件夾里面,可以避免移植到其他地方首次讀取jsp文件需要重新解析 。一般格式:項目文件夾\work reloadable是指可以重新加載,一般設(shè)置為true,方便使用,不需要經(jīng)常重啟Tomcat。 以后啟動Tomcat,在瀏覽器輸入http://localhost:8080/project就能訪問該項目的welcome文件。

          ***************
          為什么要不修改server.xml呢?在Tomcat6的doc幫助文檔中,官方是不提倡修改server.xml來添加虛擬目錄的!
                 而我認為,以上使用的方法,非常方便于項目的移植,移植后,只有修改docBase和workDir的值就行了,甚至可以去掉workDir這個屬性

          posted on 2008-06-23 11:12 pasha 閱讀(1553) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          最常用和實用的CSS技巧

          最新隨筆

          搜索

          最新評論

          • 1.?re: SESSION
          • 啊!!原來是這樣啊 終于明白了 謝了!!
          • --ndj

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 恭城| 广汉市| 类乌齐县| 读书| 马边| 青冈县| 云阳县| 贵德县| 南皮县| 河东区| 启东市| 阿鲁科尔沁旗| 贵南县| 黑水县| 贡嘎县| 沂水县| 彭泽县| 济阳县| 东丰县| 伊宁市| 资兴市| 崇仁县| 阿拉尔市| 富顺县| 武乡县| 聊城市| 金塔县| 襄樊市| 哈巴河县| 政和县| 广南县| 乐亭县| 延吉市| 阿坝县| 沂水县| 平江县| 岑溪市| 咸宁市| 太康县| 嘉祥县| 台山市|