❶ 什麼是tomcat不要百度的。解釋的詳細點
通俗一點說,tomcat是一個web伺服器,我們訪問的網站,族亂其實就是一些文件和程序,他們存儲和運行在一台主機上,這個主機就是伺服器伍穗正,只有腔悔把網站發布到伺服器上別的主機才能訪問,所以我們在開發網站用tomcat在自己的電腦上建立一個伺服器,把網站發布上去就能通過瀏覽器輸入地址訪問了
❷ 怎麼安裝 tomcat的壓縮文件
安裝 tomcat的壓縮文件方法詳見:http://jingyan..com/article/4853e1e57e61711909f726ec.html
❸ 如何將tomcat部署到linux
首先,登錄tomcat官方網站。下載tomcat軟體,一定要下載解壓縮版本的。
2
使用Xftp將Tomcat壓縮包上傳到伺服器中。
解壓tomcat伺服器壓縮包
等待解壓縮成功。
tomcat伺服器運行時是需要JDK支持的,所以必須配置好JDK用到的那些環境變數
編輯/etc下的profile文件,加上如下內容:
輸入vim profile
修改tomcat伺服器的啟動埠
修改將Tomcat伺服器啟動時使用的埠,例如改成9999
進入tomcat伺服器的bin目錄,然後執行"./startup.sh"命令啟動Tomcat伺服器,如下圖所示:
查看tomcat伺服器的Log信息,看看tomcat伺服器是否已經正常啟動,進入tomcat伺服器下的logs目錄,打開catalina.out文件進行查看,如下圖所示:
訪問Tomcat伺服器,如下圖所示
可以正常訪問了,說明Tomcat伺服器已經正常啟動成功了。
如果tomcat啟動不了,那麼最有可能就是啟動時使用的埠被其他應用程序佔用了,那麼可以通過如下的辦法進行排查,例如查看9999埠被哪個應用程序佔用了。
❹ linux怎麼壓縮tomcat
先打包tar然後壓縮,後來好像tar命令全包了
tar -zvxf tomcat tomcat.zip 似乎是這個格式,你網路看看吧
❺ 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配置實踐
❻ 基於tomcat基礎鏡像構建各種業務鏡像|範例如APP
創建 tomcat-app1 和 tomcat-app2 兩個目錄,表示基於 tomcat 自定義基礎鏡像構建出不同業務的 tomcat 應用鏡像。這個時候我們就由普通用戶來啟動tomcat。並且我們使用命令類來啟動tomcat(tail -f這樣啟動的容器就不會受tomcat 的影響)
1、准備tomcat容器的默認顯示web頁面
1)進入到/opt/dockerfile/web/tomcat/目錄下分別創建兩個不同的tomcat應用目錄一個是app1、app2,這樣做的好處事櫻敬褲好部署後期不同的業務然後直接基於tomcat的基礎鏡像即可
2)然後tomcat的壓縮包上傳上來,因為等會要基於tomcat的server.xml文件修改他的默認web顯示頁面
3)解壓tomcat壓縮包
4)然後再將現在解壓好的server.xml文件拷貝到/opt/dockerfile/web/tomcat/tomcat-app1目錄下,這個server.xml文件決定了容器的tomcat啟動之後再什麼地方去找web顯示頁面文件
5)修改server.xml文件,修改它默認的web顯示頁面的目錄,我們這是將他的web顯示頁面修改為
6)准備自定義web頁面,等會好將這個目錄下的web頁面解壓到tomcat容器中的/data/tomcat/webapps中,以後再公司中將WEBserver目錄替換成公司的數據目錄即可
7)WEBserver目錄,並創建一個index.jsp,好做以區別app1和app2應用的web頁面
8)再將這個WEBserver文件夾打包,因為等會在dockerfiel中要讓ADD參數解壓到tomcat容器去,並且打包的時候有個小注意,就是我們是否包含WEBserver這個目錄,如果一開始包含的WEBserver這個目錄的話,就決定了tomcat訪問的方式,是否添加WEBserver的URL。所以包括了就要一直包括,所以到了公司中一定要和開發商量好。千萬不要來回變
我們這里是不包稿源含這個WEBserver這個目錄
9) 將WEBserver.tar.gz拷貝到/opt/dockerfile/web/tomcat/tomcat-app1目錄中,等會好添加到dockerfile文件中
** 2、准備app1業務鏡像Dockerfile文件**
3、編輯tomcat 業務1的構建腳本
4、執行構建腳本,開始製作鏡像
5、啟動tomcat-web:app1容器
6、進入容器通過www普通用戶啟動tomcat服務
7、瀏覽器訪問檢測
http://10.0.0.117:8080/WEBserver/
1、拷貝dockerfile鏡像製作文件以及所需文件
製作第二個 tomcat 服務鏡像。做的二個業務鏡像的時候就不用這么復雜了,而是直接將tomcat-app1的目錄拷貝到tomcat-app2即可,因為他們所需的文件都差不多
2、修改app2 的web頁面
進入tomcat-app2目錄下只需修改index.jsp 即可,因為app2這個業脊簡務也是基於 tomcat-basev9.0.37 的基礎鏡像來製作。和app1的製作過程一樣
3、打包app2 業務的web頁面壓縮包
4、修改構建腳本,區分app2業務的鏡像名
我們的dockerfile文件其實已經不用動了,因為多個tomcat業務都是共用tomact的基礎鏡像。所以只需修改構建腳本即可,將其新的鏡像名改為 app2。
5、執行構建鏡像腳本,製作新鏡像
6、啟動app2容器
7、通過瀏覽器訪問檢測
http://10.0.0.117:8081/WEBserver/
總結:
以上就是針對java服務的鏡像構建以及啟動方式
❼ 1 如何優化Tomcat
(1)bin:主要用來存放命令,.bat是windows下,.sh是Linux下
(2)conf:主要用來存放tomcat的一些配置文件
(3)lib:存放tomcat依賴的一些jar包
(4)logs:存放tomcat在運行時產生的日誌文件
(5)temp:存放運殲耐困行時產生的臨時文件
(6)webapps:存放應用程序
(7)work:存放tomcat運行時編譯後的文件,比如JSP編譯後的文件
tomcat優化可以有幾個方向:配置項的刪除,配置參數的修改,jdk參數修改、Tomcat內存優化、Tomcat並發優化、Tomcat緩存優化
web項目中自帶的WEB-INF/web.xml,
tomcat自帶的conf/web.xml以及conf/server.xml文件。
因為這些xml文件都會被tomcat解析,所以優化方向是將這三類文件中不必要的配置刪除。
tomcat在啟動時,會將web項目中WEB-INF/web.xml和自己的conf/web.xml進行合並,然後在ContextConfig類下的configureContext()統一解析這些內容:
這個只能是在項目中不需要的配置不要放進去,有過期的配置要及時刪除,減少tomcat的解析成本。
這是一個處理靜態文件的servlet,如果項目中不需要tomcat進行靜態文件的處理,可以將其刪掉。
這個servlet是用來編譯和執行jsp文件的,如果項目中沒有jsp文件,可以將其刪掉。
項目中沒有jsp,關於jsp下面的映射也可以刪除:
文件中提供的mime類型非常多,如果有確定項目中不會涉及到的類型,可以刪除其映射配置。
如果不需要展示tomcat的歡迎頁,可以將其刪掉。
下面是tomcat8.5版本提供的默認listener列表:
作用是在Tomcat初始化時,列印一下Tomcat相關的版本信息以及操作系統和jdk環境畝銷信息,可以刪掉。
Tomcat啟動時,檢查APR庫,如果存在則載入,這個配置僅當connector的protocol設置為AJP/1.3時有用,如果非AJP/1.3,可以刪除。
Java運行環境可能導致某些已知位置的內存泄漏或文件鎖定,
提供這些情況的解決方案。
作用於全局資源,通氏念過該監聽器,初始化標簽中定義的全局JNDI資源;
如果沒有該監聽器,定義的全局資源都不能使用。
如果不使用GlobalNamingResources定義全局資源,可以刪除。
Web應用因thread-local導致的內存泄露而要停止時,該監聽器會觸發線程池中線程的更新。
只有當Web應用(即Context元素)的屬性設置為true時,該監聽器才有效。
官方文檔對配置的解釋為:
GlobalNamingResources可以定義全局資源,可以看出,這個tomcat的默認配置是通過讀取$TOMCAT_HOME/ conf/tomcat-users.xml實現的。
tomcat-user.xml用於定義tomcat管理頁面相關配置,如果不登錄管理界面可以刪掉。
官網中對於這個connector有如下描述:
The AJP Connector element represents a Connector component that communicates with a web connector via the AJP protocol. This is used for cases where you wish to invisibly integrate Tomcat into an existing (or new) Apache installation, and you want Apache to handle the static content contained in the web application, and/or utilize Apache's SSL processing.
可知當tomcat需要集成到Apache伺服器時才使用這個connector,現在一般都用Nginx代替Apache,所以不使用Apache的話這個也可以刪掉。
tomcat默認配置包含如下connector:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Realm,可以把它理解成「域」;
Realm提供了一種用戶密碼與web應用的映射關系,從而達到角色安全管理的作用,tomcat默認的這個realm是和name為UserDatabase的資源綁定的,而該資源在Server元素中使用GlobalNamingResources配置。如果不需要可以刪掉。
Valve的意思是「閥門」,不同的Valve有不同的特性,Valve的配置中AccessLogValve的作用是記錄其所在容器處理的所有請求,默認配置中的Valve放在Host下,便可以記錄該Host處理的所有請求。
AccessLogValve記錄的日誌就是訪問日誌,每天的請求會寫到一個日誌文件里。現在一般記錄Nginx訪問日誌,這個也可以刪除。
tomcat是用Java寫的,就要運行在jvm上,垃圾處理方式等都要遵循jvm的方式。
tomcat中設置jvm參數在 catalina.sh(Linux)和catalina.bat(windows)中,以JAVA_OPTS變數存儲。以catalina.sh為例:
可以在該變數中添加jvm參數,達到減少gc次數等目標,例如根據tomcat所在伺服器修改jvm內存大小等。
參數優化主要是優化sever.xml中的配置參數,示例server.xml如下:
port:指定一個埠,這個埠負責監聽關閉tomcat的請求。
shutdown:指定向埠發送的命令字元串。
sever配置沒什麼可優化的。
name:指定service的名字。
service配置沒什麼可優化的。
port:指定伺服器端要創建的埠號,並在這個埠監聽來自客戶端的請求
minProcessors:伺服器啟動時創建的處理請求的線程數
maxProcessors:最大可以創建的處理請求的線程數
enableLookups:如果為true,則可以通過調用request.getRemoteHost()進行DNS查詢來得到遠程客戶端的實際主機名,若為false則不進行DNS查詢,而是返回其ip地址
redirectPort:指定伺服器正在處理http請求時收到了一個SSL傳輸請求後重定向的埠號
acceptCount:指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理
maxConnections:達到這個值之後,將繼續接受連接,但是不處理,能繼續接受多少根據acceptCount的值
minSpareThreads:最小空閑線程數
connectionTimeout:指定超時的時間數(以毫秒為單位)
官網8.5版本connector使用連接類型如下:
查看Connector源碼:
可知默認協議使用的是Http11NioProtocol,即NIO方式。
tomcat默認連接池有限制,可以為connector配置自己的連接池,例如:
在連接池中可以根據項目自定義最大線程數量。
name:屬性用於日誌和錯誤信息,在整個Server中應該唯一
defaultHost:defaultHost屬性指定了默認的host名稱,當發往本機的請求指定的host名稱不存在時,一律使用defaultHost指定的host進行處理;因此defaultHost的值,必須與Engine中的一個Host組件的name屬性值匹配
沒什麼可優化的。
name:指定虛擬主機的主機名,一個Engine中有且僅有一個Host組件的name屬性與Engine組件的defaultHost屬性相匹配;
註:一般情況下,主機名需要是在DNS伺服器中注冊的網路名,但是Engine指定的defaultHost不需要
appBase:應用程序基本目錄,即存放應用程序的目錄
unpackWARs:指定了是否將war文件解壓,如果為true,則通過解壓後的目錄運行該Web應用;如果為false,則直接使用WAR文件運行Web應用
autoDeploy:是否自動部署,Tomcat運行期間會用一個線程定時檢查,如果有新的web工程會自動部署。
autoDeploy生產環境之下可以改成false,減少tomcat的負擔。
autoDeploy有需要注意的點,如果為true,拷貝war到webapp下面,tomcat自動解壓並部署。但是停掉tomcat拷貝新的war包過去,tomcat不會解壓新包並後覆蓋舊目錄,因為tomcat直接使用了之前解壓過的目錄。官網有描述:
If you redeploy an updated WAR file, be sure to delete the expanded directory when restarting Tomcat, so that the updated WAR file will be re-expanded (note that the auto deployer, if enabled, will automatically expand the updated WAR file once the previously expanded directory is removed).
docBase:代表應用程序或war文件存放的路徑,這個可以自由指定,例如d:/study
path:
表示此web應用程序的url的前綴,這樣請求的url為 http://localhost:8080/path/ **
reloadable:如果為true,則tomcat會自動檢測應用程序的/WEB-INF/lib和/WEB-INF/classes目錄的變化,自動裝載新的應用程序,可以在不重起tomcat的情況下改變應用程序
生產環境中可以把reloadable設置為false。
className:指定Realm使用的類名,此類必須實現org.apache.catalina.Realm介面
沒什麼可優化的
className:規定了Valve的類型;例如tomcat默認的是AccessLogValve。
directory:指定日誌存儲的位置,默認日誌存儲在 TOMCAT_HOME/logs目錄下,可以看到如下所示的日誌文件。
沒什麼可優化的。
Tomcat內存優化主要是對 tomcat 啟動參數優化,我們可以在 tomcat 的啟動腳本 catalina.sh 中設置 java_OPTS 參數。
現公司伺服器內存一般都可以加到最大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 配置文件 server.xml 中的
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
minProcessors="100"
maxProcessors="1000"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
maxThreads 客戶請求最大線程數
minSpareThreads Tomcat初始化時創建的 socket 線程數
maxSpareThreads Tomcat連接器的最大空閑 socket 線程數
enableLookups 若設為true, 則支持域名解析,可把 ip 地址解析為主機名
redirectPort 在需要基於安全通道的場合,把客戶請求轉發到基於SSL 的 redirectPort 埠
acceptAccount 監聽埠隊列最大數,滿了之後客戶請求會被拒絕(不能小於maxSpareThreads )
connectionTimeout 連接超時
minProcessors 伺服器創建時的最小處理線程數
maxProcessors 伺服器同時最大處理線程數
URIEncoding URL統一編碼
compression 打開壓縮功能
compressionMinSize 啟用壓縮的輸出內容大小,這裡面默認為2KB
compressableMimeType 壓縮類型
connectionTimeout 定義建立客戶連接超時的時間. 如果為 -1, 表示不限制建立客戶連接的時間
❽ tomcat 配置壓縮是壓縮的什麼
下載tomcat解壓版,可以去官網下載,
下載完畢後解壓,文件路徑不要有中文
解壓後基本上就可以使用了
如有需要可以配置埠:
打開tomcat目錄下conf\server.xml文件:
http默認埠號為80,也就是說在URL中不給出埠號時就表示使用80埠。當然你也可以修改為其它埠號。
當把埠號修改為80後,在瀏覽器中只需要輸入:http://localhost就可以訪問Tomcat主頁了。
tomcat目錄詳解:
l bin:該目錄下存放的是二進制可執行文件,如果是安裝版,那麼這個目錄下會有兩個exe文件:tomcat6.exe、tomcat6w.exe,前者是在控制台下啟動Tomcat,後者是彈出UGI窗口啟動Tomcat;如果是解壓版,那麼會有startup.bat和shutdown.bat文件,startup.bat用來啟動Tomcat,但需要先配置JAVA_HOME環境變數才能啟動,shutdawn.bat用來停止Tomcat;
l conf:這是一個非常非常重要的目錄,這個目錄下有四個最為重要的文件:
Ø server.xml:配置整個伺服器信息。例如修改埠號,添加虛擬主機等;下面會詳細介紹這個文件;
Ø tomcatusers.xml:存儲tomcat用戶的文件,這里保存的是tomcat的用戶名及密碼,以及用戶的角色信息。可以按著該文件中的注釋信息添加tomcat用戶,然後就可以在Tomcat主頁中進入Tomcat Manager頁面了;
Ø web.xml:部署描述符文件,這個文件中注冊了很多MIME類型,即文檔類型。這些MIME類型是客戶端與伺服器之間說明文檔類型的,如用戶請求一個html網頁,那麼伺服器還會告訴客戶端瀏覽器響應的文檔是text/html類型的,這就是一個MIME類型。客戶端瀏覽器通過這個MIME類型就知道如何處理它了。當然是在瀏覽器中顯示這個html文件了。但如果伺服器響應的是一個exe文件,那麼瀏覽器就不可能顯示它,而是應該彈出下載窗口才對。MIME就是用來說明文檔的內容是什麼類型的!
Ø context.xml:對所有應用的統一配置,通常我們不會去配置它。
l lib:Tomcat的類庫,裡面是一大堆jar文件。如果需要添加Tomcat依賴的jar文件,可以把它放到這個目錄中,當然也可以把應用依賴的jar文件放到這個目錄中,這個目錄中的jar所有項目都可以共享之,但這樣你的應用放到其他Tomcat下時就不能再共享這個目錄下的Jar包了,所以建議只把Tomcat需要的Jar包放到這個目錄下;
l logs:這個目錄中都是日誌文件,記錄了Tomcat啟動和關閉的信息,如果啟動Tomcat時有錯誤,那麼異常也會記錄在日誌文件中。
l temp:存放Tomcat的臨時文件,這個目錄下的東西可以在停止Tomcat後刪除!
l webapps:存放web項目的目錄,其中每個文件夾都是一個項目;如果這個目錄下已經存在了目錄,那麼都是tomcat自帶的。項目。其中ROOT是一個特殊的項目,在地址欄中沒有給出項目目錄時,對應的就是ROOT項目。http://localhost:8080/examples,進入示例項目。其中examples就是項目名,即文件夾的名字。
l work:運行時生成的文件,最終運行的文件都在這里。通過webapps中的項目生成的!可以把這個目錄下的內容刪除,再次運行時會生再次生成work目錄。當客戶端用戶訪問一個JSP文件時,Tomcat會通過JSP生成Java文件,然後再編譯Java文件生成class文件,生成的java和class文件都會存放到這個目錄下。
l LICENSE:許可證。
l NOTICE:說明文件。
❾ 如何開啟Tomcat伺服器的Gzip網頁壓縮功能
現在主流的瀏覽器如谷歌瀏覽器和IE瀏覽器都支持客戶端Gzip,也就是說,在伺服器上的網頁,傳輸之前,先使用Gzip壓縮再傳輸給客戶端,客戶端接收之後由瀏覽器解壓顯示,這樣雖然稍微佔用了一些伺服器和客戶端的CPU,但是換來的是更高的帶寬利用率
❿ 如何設定tomcat啟動時jvm內存大小
可以給Java虛擬機設置使用的內存,但是如果你的選擇不對的話,虛擬機不會補償。可通過命令行的方式改變虛擬機使用內存的大小。如下表所示有兩個參數用來設置虛擬機使用內存的大小。
參數
描述
-Xms
JVM初始化堆的大小
-Xmx
JVM堆的最大值
這兩個值的大小一般根據需要進行設置。初始化堆的大小執行了虛擬機在啟動時向系統申請的內存的大小。一般而言,這個參數不重要。但是有的應用程序在大負載的情況下會急劇地佔用更多的內存,此時這個參數就是顯得非常重要,如果虛擬機啟動時設置使用的內存比較小而在這種情況下有許多對象進行初始化,虛擬機就必須重復地增加內存來滿足使用。由於這種原因,我們一般把-Xms和-Xmx設為一樣大,而堆的最大值受限於系統使用的物理內存。一般使用數據量較大的應用程序會使用持久對象,內存使用有可能迅速地增長。當應用程序需要的內存超出堆的最大值時虛擬機就會提示內存溢出,並且導致應用服務崩潰。因此一般建議堆的最大值設置為可用內存的最大值的80%。
Tomcat默認可以使用的內存為128MB,在較大型的應用項目中,這點內存是不夠的,需要調大。
Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下設置:
JAVA_OPTS='-Xms【初始化內存大小】 -Xmx【可以使用的最大內存】'
需要把這個兩個參數值調大。例如:
JAVA_OPTS='-Xms256m -Xmx512m'
表示初始化內存為256MB,可以使用的最大內存為512MB。
另外需要考慮的是Java提供的垃圾回收機制。虛擬機的堆大小決定了虛擬機花費在收集垃圾上的時間和頻度。收集垃圾可以接受的速度與應用有關,應該通過分析實際的垃圾收集的時間和頻率來調整。如果堆的大小很大,那麼完全垃圾收集就會很慢,但是頻度會降低。如果你把堆的大小和內存的需要一致,完全收集就很快,但是會更加頻繁。調整堆大小的的目的是最小化垃圾收集的時間,以在特定的時間內最大化處理客戶的請求。在基準測試的時候,為保證最好的性能,要把堆的大小設大,保證垃圾收集不在整個基準測試的過程中出現。
如果系統花費很多的時間收集垃圾,請減小堆大小。一次完全的垃圾收集應該不超過 3-5 秒。如果垃圾收集成為瓶頸,那麼需要指定代的大小,檢查垃圾收集的詳細輸出,研究 垃圾收集參數對性能的影響。一般說來,你應該使用物理內存的 80% 作為堆大小。當增加處理器時,記得增加內存,因為分配可以並行進行,而垃圾收集不是並行的。
Tomcat 5常用優化和配置
1、JDK內存優化:
Tomcat默認可以使用的內存為128MB,Windows下,在文件{tomcat_home}/bin/catalina.bat,Unix下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下設置:
JAVA_OPTS='-Xms[初始化內存大小] -Xmx[可以使用的最大內存]
一般說來,你應該使用物理內存的 80% 作為堆大小。
2、連接器優化:
在tomcat配置文件server.xml中的配置中,和連接數相關的參數有:
maxThreads:
Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可創建的最大的線程數。默認值150。
acceptCount:
指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理。默認值10。
minSpareThreads:
Tomcat初始化時創建的線程數。默認值25。
maxSpareThreads:
一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程。默認值75。
enableLookups:
是否反查域名,默認值為true。為了提高處理能力,應設置為false
connnectionTimeout:
網路連接超時,默認值60000,單位:毫秒。設置為0表示永不超時,這樣設置有隱患的。通常可設置為30000毫秒。
maxKeepAliveRequests:
保持請求數量,默認值100。
bufferSize:
輸入流緩沖大小,默認值2048 bytes。
compression:
壓縮傳輸,取值on/off/force,默認值off。
其中和最大連接數相關的參數為maxThreads和acceptCount。如果要加大並發連接數,應同時加大這兩個參數。web server允許的最大連接數還受制於*作系統的內核參數設置,通常Windows是2000個左右,Linux是1000個左右。
3、tomcat中如何禁止和允許列目錄下的文件
在{tomcat_home}/conf/web.xml中,把listings參數設置成false即可,如下:
<servlet>
...
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
...
</servlet>
4、tomcat中如何禁止和允許主機或IP地址訪問
<Host name="localhost" ...>
...
<Valve className="org.apache.catalina.valves.RemoteHostValve"
allow="*.mycompany.com,www.yourcompany.com"/>
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
deny="192.168.1.*"/>
...
</Host>
伺服器的配置
JAVA_OPTS='-server -Xms512m -Xmx768m -XX:NewSize=128m -XX:MaxNewSize=192m -XX:SurvivorRatio=8'