1. 程式人生 > >Tomcat服務安裝配置

Tomcat服務安裝配置

tomcat服務安裝配置

tomcatapache.org

技術分享圖片

一個tomcat的server裏都有一個service,service裏有Englne引擎,引擎裏有多個主機host,主機裏可以有多個Context,而每個裏面都可以定義日誌 訪問密碼 等。


其中相關屬性定義有:

1) className:相關的java實現的類名,相應於分別應該為org.apache.catalina.valves.RemoteHostValve或org.apache.catalina.valves.RemoteAddrValve;

2) allow:以逗號分開的允許訪問的IP地址列表,支持正則表達式,因此,點號“.”用於IP地址時需要轉義;僅定義allow項時,非明確allow的地址均被deny;

3) deny: 以逗號分開的禁止訪問的IP地址列表,支持正則表達式;使用方式同allow;


9、GlobalNamingResources

應用於整個服務器的JNDI映射,此可以避免每個Web應用程序都需要在各自的web.xml創建,這在web應用程序以WAR的形式存在時尤為有用。它通常可以包含三個子元素:

1) Environment;

2) Resource;

3) ResourceEnvRef;



10、WatchedResource

WatchedResource可以用於Context中監視指定的webapp程序文件的改變,並且能夠在監視到文件內容發生改變時重新裝載此文件。


11、Listener

Listener用於創建和配置LifecycleListener對象,而LifecycleListener通常被開發人員用來創建和刪除容器。


11、Loader

Java的動態裝載功能是其語言功能強大表現之一,Servlet容器使用此功能在運行時動態裝載servlet和它們所依賴的類。Loader可以用於Context中控制java類的加載。


12、Manager

Manger對象用於實現HTTP會話管理的功能,Tomcat6中有5種Manger的實現:

1) StandardManager

Tomcat6的默認會話管理器,用於非集群環境中對單個處於運行狀態的Tomcat實例會話進行管理。當Tomcat關閉時,這些會話相關的數據會被寫入磁盤上的一個名叫SESSION.ser的文件,並在Tomcat下次啟動時讀取此文件。

2) PersistentManager

當一個會話長時間處於空閑狀態時會被寫入到swap會話對象,這對於內存資源比較吃緊的應用環境來說比較有用。

3)DeltaManager

用於Tomcat集群的會話管理器,它通過將改變了會話數據同步給集群中的其它節點實現會話復制。這種實現會將所有會話的改變同步給集群中的每一個節點,也是在集群環境中用得最多的一種實現方式。

4) BackupManager

用於Tomcat集群的會話管理器,與DeltaManager不同的是,某節點會話的改變只會同步給集群中的另一個而非所有節點。

5)SimpleTcpReplicationManager

Tomcat4時用到的版本,過於老舊了。


13、Stores

PersistentManager必須包含一個Store元素以指定將會話數據存儲至何處。這通常有兩種實現方式:FileStore和JDBCStore。


14、Resources

經常用於實現在Context中指定需要裝載的但不在Tomcat本地磁盤上的應用資源,如Java類,HTML頁面,JSP文件等。


15、Cluster

專用於配置Tomcat集群的元素,可用於Engine和Host容器中。在用於Engine容器中時,Engine中的所有Host均支持集群功能。在Cluster元素中,需要直接定義一個Manager元素,這個Manager元素有一個其值為org.apache.catalina.ha.session.DeltaManager或org.apache.catalina.ha.session.BackupManager的className屬性。同時,Cluster中還需要分別定義一個Channel和ClusterListener元素。


15.1、Channel

用於Cluster中給集群中同一組中的節點定義通信“信道”。Channel中需要至少定義Membership、Receiver和Sender三個元素,此外還有一個可選元素Interceptor。


15.2、Membership

用於Channel中配置同一通信信道上節點集群組中的成員情況,即監控加入當前集群組中的節點並在各節點間傳遞心跳信息,而且可以在接收不到某成員的心跳信息時將其從集群節點中移除。Tomcat6中Membership的實現是org.apache.catalina.tribes.membership.McastService。


15.3、Sender

用於Channel中配置“復制信息”的發送器,實現發送需要同步給其它節點的數據至集群中的其它節點。發送器不需要屬性的定義,但可以在其內部定義一個Transport元素。


15.4 Transport

用於Sender內部,配置數據如何發送至集群中的其它節點。Tomcat6有兩種Transport的實現:

1) PooledMultiSender

基於Java阻塞式IO,可以將一次將多個信息並發發送至其它節點,但一次只能傳送給一個節點。

2)PooledParallelSener

基於Java非阻塞式IO,即NIO,可以一次發送多個信息至一個或多個節點。


15.5 Receiver

用於Channel定義某節點如何從其它節點的Sender接收復制數據,Tomcat6中實現的接收方式有兩種BioReceiver和NioReceiver。


安裝:

#tar xf apache-tomacat-7.0.33.tar.gz

#cd /usr/local/

#ln -sv apache-tomacat-7.0.33 tomacat

#cd tomacat


在servrt.xml裏

Server port="8005" shutdown="SHUTDOWN"定義telnet登錄進行管理的端口8005


pathname="conf/tomcat-users.xml"定義訪問控制


<Service name="Catalina"> 定義一個service

<Connector port="8080" proyocol="HTTP/1.1" 默認端口8080

connectionTimeout="2000"

redirectPort="8443" />



啟動tomcat

#vim /etc/profile.d/tomcat.sh

export CATALINE_HOME=/usr/local/tomcat

export PATH=$PATH:$CATALINE_HOME/bin

#./etc/profile.d/tomcat.sh

#ls bin/ 會有version.sh和catalina.sh等

#catalina.sh version 傳遞一個version參數給catalina腳本

#catalina.sh start啟動

#netstat -tnlp 查看8080和8009端口是否在監聽狀態



#ls logs裏

catalina.$TIME代表catalina自身啟動的日誌信息

catalina。out當前正在使用的文件

host-manager為host-manager提供的日誌

manager.$TIME為manager提供的日誌文件

localhost.$TIME默認主機的日誌文件

localhostaccess_log.$TIME主機的訪問日誌

temp臨時文件目錄

webapps 目錄文件


啟動腳本:

vim /etc/rc.d/init.d/tomcat.sh

#!/bin/sh

# Tomcat init script for Linux.

#

# chkconfig: 2345 96 14

# description: The Apache Tomcat servlet/JSP container.

JAVA_HOME=/usr/java/latest

CATALINA_HOME=/usr/local/tomcat

export JAVA_HOME CATALINA_HOME

exec $CATALINA_HOME/bin/catalina.sh $*


#chomd +x /etc/rc.d/init.d/tomcat

#chkconfig --add tomcat


語法測試,在tomcat停止後測試

#service tomcat configtest


本文出自 “運維成長路” 博客,謝絕轉載!

Tomcat服務安裝配置