tomcat壓縮配置
1. 如何測試tomcat的環境變數配置成功
1、tomcat伺服器依賴於java環境,所以要先查看是否配置JAVA_HOME,進入環境變數點擊查看。

2. zip版本的Tomcat如何配置啟動
先安裝好JDK,現在的版本只要安裝版本都不要你特別設置環境變數,非安裝的版本右鍵點擊我的電腦 —> 屬性 —> 高級 —> 環境變數 —> 系統變數中添加以下環境變數(假定你的j2sdk安裝在c:\j2sdk1.5.0):
JAVA_HOME=c:\j2sdk1.5.0
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
(.;一定不能少,因為它代表當前路徑)
path=%JAVA_HOME%\bin
再解壓縮TOMCAT,系統變數中添加以下環境變數(假定你的tomcat安裝在c:\tomcat):
CATALINA_HOME=c:\tomcat
CATALINA_BASE=c:\tomcat
然後修改環境變數中的classpath,把tomat安裝目錄下的common\lib下的(可以根據實際追加)servlet.jar追加到classpath中去,修改後的classpath如下:
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet.jar;
接著可以啟動tomcat,在IE中訪問http://localhost:8080,如果看到tomcat的歡迎頁面的話說明安裝成功了。
3. 如何配置Tomcat伺服器環境
一、安裝JDK和Tomcat
1,安裝JDK:直接運行jdk-7-windows-i586.exe可執行程序,默認安裝即可。
備註:路徑可以其他盤符,不建議路徑包含中文名及特殊符號。
2、安裝Tomcat:直接解壓縮下載文件「apache-tomcat-7.0.33-windows-x86.zip」到C盤下。安裝路徑建議修改為:c: omcat。
備註:如下載的是可執行文件,雙擊運行,默認安裝即可。
二、配置JDK環境變數(在步驟查看如何配置環境變數)
1,新建變數名:JAVA_HOME,變數值:C:Program FilesJavajdk1.7.0
2,打開PATH,添加變數值:%JAVA_HOME%in;%JAVA_HOME%jrein
3,新建變數名:CLASSPATH,變數值:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar
備註:
1,.表示當前路徑,%JAVA_HOME%就是引用前面指定的JAVA_HOME;
2,JAVA_HOME指明JDK安裝路徑,此路徑下包括lib,bin,jre等文件夾,tomcat,eclipse等的運行都需要依靠此變數。
3,PATH使得系統可以在任何路徑下識別java命令。
4,CLASSPATH為java載入類(class or lib)路徑,只有類在classpath中,java命令才能識別。
三、測試JDK
在CMD命令下輸入javac,java,javadoc命令:出現圖示界面,表示安裝成功。

1,JAVA_HOME中的路徑不能用分號結尾,如C:Program FilesJavajdk1.7.0。
2,CATALINA_BASE,CATALINA_HOME,TOMCAT_HOME中的路徑不能以「」結尾。
3,JAVA_HOME的路徑一定不要寫成了JRE的路徑。
4,在環境變數中修改添加變數時,一定要注意分號、空格,是否有多餘的字母。作者就是因為path路徑中多了一個字母,怎麼都配置不成功。如果配置不成功,一定要反復檢查。
以上錯誤,非常容易出現錯誤:CATALINA_HOME或是JAVA_HOME沒有配置好。如錯誤提示「The CATALINA_HOME environment variable is not defined correctly」
一、靜態部署
1、直接將web項目文件件拷貝到webapps 目錄中
Tomcat的Webapps目錄是Tomcat默認的應用目錄,當伺服器啟動時,會載入所有這個目錄下的應用。所以可以將JSP程序打包成一個war包放在目錄下,伺服器會自動解開這個war包,並在這個目錄下生成一個同名的文件夾。一個war包就是有特性格式的jar包,它是將一個web程序的所有內容進行壓縮得到。具體如何打包,可以使用許多開發工具的IDE環境,如Eclipse等。也可以用cmd命令:jar -cvf mywar.war myweb
webapps這個默認的應用目錄也是可以改變。打開Tomcat的conf目錄下的server.xml文件,找到下面內容:<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
將appBase修改即可。
2、在server.xml中指定
在Tomcat的配置文件中,一個Web應用就是一個特定的Context,可以通過在server.xml中新建Context里部署一個JSP應用程序。打開server.xml文件,在Host標簽內建一個Context,內容如下。在tomcat中的conf目錄中,在server.xml中的,<host/>節點中添加:
<Contextpath="/hello"docBase="D: workspacehelloWebRoot"debug="0"privileged="true">
< /Context>或者
<Contextpath="/myapp"reloadable="true"docBase="D:myapp"workDir="D:myappwork"/>
或者
<Contextpath="/sms4"docBase="D:workspacesms4WebRoot"/>
說明:path是虛擬路徑;
docBase是應用程序的物理路徑;
workDir是這個應用的工作目錄,存放運行時生成的與這個應用相關的文件;
debug則是設定debug level, 0表示提供最少的信息,9表示提供最多的信息
privileged設置為true的時候,才允許Tomcat的Web應用使用容器內的Servlet
reloadable如果為true,則tomcat會自動檢測應用程序的/WEB-INF/lib和/WEB-INF/classes目錄的變化,自動裝載新的應用程序,可以在不重起tomcat的情況下改變應用程序,實現熱部署
antiResourceLocking和antiJARLocking 熱部署是需要配置的參數,默認false避免更新了某個webapp,有時候Tomcat並不能把舊的webapp完全刪除,通常會留下WEB-INF/lib下的某個jar包,必須關閉Tomcat才能刪除,這就導致自動部署失敗。設置為true,Tomcat在運行對應的webapp時,會把相應的源文件和jar文件復制到一個臨時目錄里。
3、創建一個Context文件
在conf目錄中,新建Catalina\localhost目錄,在該目錄中新建一個xml文件,名字不可以隨意取,要和path後的那個名字一致,按照下邊這個path的配置,xml的名字應該就應該是hello(hello.xml),該xml文件的內容為:<Context path="/hello" docBase="E:workspacehelloWebRoot" debug="0" privileged="true"></Context>
tomcat自帶例子如下:
<Context docBase="${catalina.home}/server/webapps/host-manager"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
</Context>
這個例子是tomcat自帶的,編輯的內容實際上和第二種方式是一樣的,其中這xml文件名字就是訪問路徑,這樣可以隱藏應用的真實名字。
4、注意:
刪除一個Web應用同時也要刪除webapps下相應的文件夾和server.xml中相應的Context,還要將Tomcat的confcatalinalocalhost目錄下相應的xml文件刪除,否則Tomcat仍會去配置並載入。。。
二 動態部署
登陸tomcat管理控制台:http://localhost:8080/,輸入用戶名和密碼後便可管理應用並動態發布。
在Context Path(option):中輸入/yourwebname,這代表你的應用的訪問地址。
XML Configration file URL中要指定一個xml文件,比如我們在F:下建立一個hmcx.xml文件,內容如下:<Context reloadable="false" />其中docBase不用寫了,因為在下一個文本框中填入。或者更簡單點,這個文本框什麼都不填,在WAR or Directory URL:中鍵入F:hmcx即可,然後點擊Deploy按鈕,上面就可以看到了web應用程序,名字就Context Path(option):中的名字。
如果部署.war文件還有更加簡單的方式,下面還有個Select WAR file uploae點擊瀏覽選擇.war文件,然後點擊Deploy也可以。
注意事項
項目部署方式
4. 如何安裝兩個tomcat,環境變數如何設置
裝兩個tomcat 分別是6.0和7.0 可想運行tomcat6.0 但是實際上卻運行tomcat7.0 兩個版本都是用解壓縮包 其實就是不能運行tomcat6.0 只能運行7.0 兩個環境變數都配置了。
埠也改了 還是不行
我遇到這種情況了,不知大家遇到沒有,如下是我的解決方法:
當第一個tomcat啟動後,後面tomcat的server.xml中的埠不管怎麼改,仍然會報埠沖突。後來在dos下運行才發現所有的tomcat都會去找CATALINA_HOME和CATALINA_BASE這兩個環境變數(CATALINA_HOME這個變數指向tomcat的安裝目錄,CATALINA_BASE指向tomcat的工作目錄,如果一個tomcat服務下只有一個工作目錄,則這兩個變數路徑相同,如果想要多個工作台目錄使用同一個tomcat服務,則這個變數分別指向各自的目錄),因此步驟如下:
1.使用壓縮版的tomcat不能使用安裝版的。
2.第一個tomcat的配置不變。
3.增加環境變數CATALINA_HOME2,值為新的tomcat的地址;增加環境變數CATALINA_BASE2,值為新的tomcat的地址。
4.修改新的tomcat中的startup.bat,把其中的CATALINA_HOME改為CATALINA_HOME2。
5.修改新的tomcat中的catalina.bat,把其中的CATALINA_HOME改為CATALINA_HOME2,CATALINA_BASE改為CATALINA_BASE2。
6.修改conf/server.xml文件:
6.1 <Server port="8006" shutdown="SHUTDOWN">把埠改為沒有是使用的埠(原始8005)。
6.2 <Connector port="8081" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" /> 把埠改為沒有是使用的埠(原始8080)。
6.3<Connector port="8010"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> 把埠改為沒有是使用的埠(原始8009)。
7成功!
8 第三、第四.....等N台伺服器參考3~6 步順序進行即可!
5. 詢問一下TOMCAT6以及TOMCAT7的配置問題 我用的是壓縮版,個人賬號,密碼怎麼改
改為下面形式:
<tomcat-users>
<user name="admin" password="admin" roles="admin,manager" /><!--
NOTE: The sample user and role entries below are wrapped in a comment
and thus are ignored when reading this file. Do not forget to remove
<!.. ..> that surrounds them.
-->
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
-->
</tomcat-users>
用戶名admin,密碼admin
6、7都可以用jdk6或者7,myeclipse通過配置server中指定自己的tomcat目錄而不用myeclipse自帶的這樣可以指定想用的版本。
解壓版的就可以。
6. tomcat6.0。34壓縮版本怎麼安裝,以及環境變數配置,具體點,網上講的都有點亂,,
最好是下載解壓 版 的,直接在Myeclipse 裝上就行,不用配置埠和環境變數
7. Tomcat配置實踐
要部署使用tomcat,則必須了解tomcat的目錄結構以及各目錄的作用。這里以tomcat7為例,進入tomcat安裝目錄下:
前端請求被tomcat直接接收或者由前端的代理,通過HTTP,或者AJP代理給Tomcat,此時請求被tomcat中的connector接收,不同的connector和Engine被service組件關聯起來,在一個Engine中定義了許多的虛擬主機,由Host容器定義,每一個Host容器代表一個主機,在各自的Host中,又可以定義多個Context,用此來定義一個虛擬主機中的多個獨立的應用程序。
Tomcat Server的結構圖如下:
看上去很復雜。其實,大部分都是注釋。下面是一個簡圖說明了各組件之間的關系!
上面列出的比較常用的組件元素,server.xml文件中可定義的元素非常多,包括Server, Service, Connector, Engine, Cluster, Host, Alias, Context, Realm, Valve, Manager, Listener, Resources, Resource, ResourceEnvRef, ResourceLink, WatchedResource, GlobalNameingResources, Store, Transaction, Channel, Membership, Transport, Member, ClusterListener等等。
由以上配置不難看出存在的一個問題。如果我們想要對其中一個應用程序的配置做一些修改,那麼就必須重新啟動tomcat,那樣勢必就會影響到另外兩個應用程序的正常服務。因此以上配置是不適合線上使用的, 因此需要將其配置為多實例,每個實例只跑一個獨立的應用程序,那樣我們應用程序之間就不會在互相受到影響。 但是我們將面臨這樣一個問題,80埠只能被一個HTTP/1.1 Connector監聽,而三個tomcat實例則至少需要3個HTTP/1.1 Connector,這樣我們就 需要一個前端代理做分發處理,接收HTTP 80埠的請求,按域名通過每個tomcat實例的AJP/1.3 Connector傳遞請求 。而前端的代理選擇apache,基於這樣的思路,我們還可以做到tomcat的負載均衡,而且 apache會將接收的HTTP超文本傳輸報文重新封裝成二進制格式通過AJP/1.3 協議傳遞給後端的tomcat處理 ,在效率上也是有明顯的提升。
這會讓Tomcat啟動一個server實例(即一個JVM),它監聽在8005埠以接收shutdown命令。各Server的定義不能使用同一個埠,這意味著如果在同一個物理機上啟動了多個Server實例,必須配置它們使用不同的埠。這個埠的定義用於為管理員提供一個關閉此實例的便捷途徑,因此,管理員可以直接telnet至此埠使用SHUTDOWN命令關閉此實例。不過,基於安全形度的考慮,這通常不允許遠程進行。
該元素代表整個容器,是Tomcat實例的頂層元素。由org.apache.catalina.Server介面來定義。它包含一個或多個<Service>元素。並且它不能做為任何元素的子元素。
Service主要用於關聯一個引擎和與此引擎相關的連接器,每個連接器通過一個特定的埠和協議接收入站請求交將其轉發至關聯的引擎進行處理。因此,Service要包含一個引擎、一個或多個連接器。
該元素由org.apache.catalina.Service介面定義,它包含一個<Engine>元素,以及一個或多個<Connector>,這些Connector元素共享用同一個Engine元素。
Engine是Servlet處理器的一個實例,即servlet引擎,默認為定義在server.xml中的Catalina。
每個Service元素只能有一個Engine元素。元素處理在同一個<Service>中所有<Connector>元素接收到的客戶請求。由org.apahce.catalina.Engine介面定義。
位於Engine容器中用於接收請求並進行相應處理的主機或虛擬主機。
它由Host介面定義。一個Engine元素可以包含多個<Host>元素。每個<Host>的元素定義了一個虛擬主機。它包含了一個或多個Web應用<Context>。
Context在某些意義上類似於apache中的路徑別名,一個Context定義用於標識tomcat實例中的一個Web應用程序。
它由Context介面定義。是使用最頻繁的元素。每個<Context>元素代表了運行在虛擬主機上的單個Web應用。一個<Host>可以包含多個<Context>元素。每個web應用有唯一的一個相對應的Context代表web應用自身。servlet容器為第一個web應用創建一個 ServletContext對象。
由Connector介面定義。<Connector>元素代表與客戶程序實際交互的組件,它負責接收客戶請求,以及向客戶返回響應結果。
進入Tomcat的請求可以根據Tomcat的工作模式分為如下兩類:
Tomcat應該考慮工作情形並為相應情形下的請求分別定義好需要的連接器才能正確接收來自於客戶端的請求。一個引擎可以有一個或多個連接器,以適應多種請求方式。
定義連接器可以使用多種屬性,有些屬性也只適用於某特定的連接器類型。一般說來,常見於server.xml中的連接器類型通常有4種:
Connector元素共用屬性:
HttpConnector元素的屬性:
AJP Connector的屬性:
即一個service配置多個埠,項目可以通過多個埠訪問。 修改tomcat-homeconf下的server.xml,在Service下配置多個<Connector>即可。
在這個應用里,可以用8080埠號訪問服務,也可以用8099埠號來訪問服務; 服務放置的路徑由host決定,上例中服務放在webapps下。
即配置多個service,每個service可以配置多個埠。修改tomcat-homeconf下的server.xml,添加多個Service即可。
注意:Service name、Engine name、appBase,埠號別忘了修改,以免重復。
以上三個service,發布的路徑不同,項目分別發布在webapps、webapps1、webapps2下,訪問不同的項目的方法:
在$CATALINA_HOME/conf/server.xml配置文件中的Connetctor節點,和連接數相關的參數配置和優化。
Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可創建的最大的線程數。默認值200。 可以根據機器的時期性能和內存大小調整,一般可以在400-500 。最大可以在800左右。
指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理。默認值10。
Tomcat初始化時創建的線程數。默認值4。
一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程。默認值50。
是否反查域名,默認值為true。 為了提高處理能力,應設置為false 。
網路連接超時,默認值20000,單位:毫秒。設置為0表示永不超時,這樣設置有隱患的。 通常可設置為30000毫秒 。
保持請求數量,默認值100。
輸入流緩沖大小,默認值2048 bytes。
壓縮傳輸,取值on/off/force,默認值off。
其中和最大連接數相關的參數為maxThreads和acceptCount。 如果要加大並發連接數,應同時加大這兩個參數 。 web server允許的最大連接數還受制於操作系統的內核參數設置 ,通常Windows是2000個左右,Linux是1000個左右。
配置示例:
Tomcat默認可以使用的內存為128MB,Windows下,在文件{tomcat_home}/bin/catalina.bat,Unix下,在文件$CATALINA_HOME/bin/catalina.sh的前面,增加如下設置:
一般說來,你應該使用物理內存的 80% 作為堆大小。如果本機上有Apache伺服器,可以先折算Apache需要的內存,然後修改堆大小。 建議設置為70%;建議設置[初始化內存大小]等於[可以使用的最大內存],這樣可以減少頻繁分配堆而降低性能。
在$CATALINA_HOME/conf/web.xml中,把listings參數設置成false即可,如下:
參考
WEB請求處理四:Tomcat配置實踐
8. 如何配置tomcat環境變數
1、安裝JDK:直接運行jdk-7-windows-i586.exe可執行程序,默認安裝即可。
2、安裝Tomcat:直接解壓縮下載文件「apache-tomcat-7.0.33-windows-x86.zip」到C盤下。安裝路徑建議修改為:c: omcat。
3、在CMD命令下輸入javac,java,javadoc命令:出現圖示界面,表示安裝成功。

9. 怎樣調節tomcat緩存大小
Tomcat有很多方面,我從內存、並發、緩存四個方面介紹優化方法。
一.Tomcat內存優化
Tomcat內存優化主要是對 tomcat 啟動參數優化,我們可以在 tomcat 的啟動腳本 catalina.sh 中設置 JAVA_OPTS 參數。
JAVA_OPTS參數說明
-server 啟用jdk 的 server 版;
-Xms java虛擬機初始化時的最小內存;
-Xmx java虛擬機可使用的最大內存;
-XX:PermSize 內存永久保留區域
-XX:MaxPermSize 內存最大永久保留區域
伺服器參數配置
現公司伺服器內存一般都可以加到最大2G ,所以可以採取以下配置:
JAVA_OPTS='-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'
配置完成後可重啟Tomcat ,通過以下命令進行查看配置是否生效:
首先查看Tomcat 進程號:
sudo lsof -i:9027
我們可以看到Tomcat 進程號是 12222 。
查看是否配置生效:
sudo jmap – heap 12222
我們可以看到MaxHeapSize 等參數已經生效。、
二.Tomcat並發優化
1.Tomcat連接相關參數
在Tomcat 配置文件 server.xml 中的 <Connector ... /> 配置中
1>參數說明
minProcessors:最小空閑連接線程數,用於提高系統處理性能,默認值為 10
maxProcessors:最大連接線程數,即:並發處理的最大請求數,默認值為 75
acceptCount:允許的最大連接數,應大於等於 maxProcessors ,默認值為 100
enableLookups:是否反查域名,取值為: true 或 false 。為了提高處理能力,應設置為 false
connectionTimeout:網路連接超時,單位:毫秒。設置為 0 表示永不超時,這樣設置有隱患的。通常可設置為30000 毫秒。
其中和最大連接數相關的參數為maxProcessors 和 acceptCount 。如果要加大並發連接數,應同時加大這兩個參數。
web server允許的最大連接數還受制於操作系統的內核參數設置,通常 Windows 是 2000 個左右, Linux 是 1000 個左右。
2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
minProcessors="100"
maxProcessors="1000"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
2.調整連接器connector的並發處理能力
1>參數說明
maxThreads 客戶請求最大線程數
minSpareThreads Tomcat初始化時創建的 socket 線程數
maxSpareThreads Tomcat連接器的最大空閑 socket 線程數
enableLookups 若設為true, 則支持域名解析,可把 ip 地址解析為主機名
redirectPort 在需要基於安全通道的場合,把客戶請求轉發到基於SSL 的 redirectPort 埠
acceptAccount 監聽埠隊列最大數,滿了之後客戶請求會被拒絕(不能小於maxSpareThreads )
connectionTimeout 連接超時
minProcessors 伺服器創建時的最小處理線程數
maxProcessors 伺服器同時最大處理線程數
URIEncoding URL統一編碼
2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
3.Tomcat緩存優化
1>參數說明
c ompression 打開壓縮功能
compressionMinSize 啟用壓縮的輸出內容大小,這裡面默認為2KB
compressableMimeType 壓縮類型
connectionTimeout 定義建立客戶連接超時的時間. 如果為 -1, 表示不限制建立客戶連接的時間
2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
4.參考配置
1>舊有的配置
參考網路對伺服器做過如下配置,拿出來分享下:
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="200"
redirectPort="8443"
disableUploadTimeout="true" />
後來發現在訪問量達到3 百萬多的時候出現性能瓶頸。
2>更改後的配置
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
