Tomact的一些小配置
1、配置Tomact的名稱
當一臺伺服器啟動太多的Tomact的時候,需要區別Tomact的名稱,可以給啟動的Tomact新增一個標題。如下:
在Tomact的bin目錄下找到catalina.bat檔案,用記事本開啟。在中間找到 if "%TITLE%" == "" set TITLE=
在set TITLE中敲入你命名的Tomact的名稱,重啟Tomact即可。
2、配置Tomact的記憶體
在catalina.bat的第一行增加:
Java程式碼: set JAVA_OPTS=-server -Xms512m -Xmx2048m -XX:PermSize=64M -XX:MaxPermSize=512m -Djava.awt.headless=true
3、配置Tomact的虛擬檔案路徑
Tomact中配置虛擬檔案路徑(主要用於附件、圖片等,前端直接使用虛擬路徑訪問附件、圖片)
比如儲存一張liuyuehu.jpg的圖片,使用虛擬路徑訪問圖片的配置:
在Tomact的localhost資料夾下面images.xml檔案
<?xml version="1.0" encoding="UTF-8"?>
<Context path="images" reloadable="false" docBase="D:\cdc\images"></Context>、
重啟Tomact後,在瀏覽器中輸入:http://127.0.0.1:8080/images/liuyuehu.jpg訪問成功!虛擬圖片路徑配置成功!
4、配置Tomact中專案路徑
Tomact叢集時,不會採取每個Tomact都載入一份獨立的程式碼,而使用共享同一份程式碼。使用tomcat配置專案路徑來共享同一份程式碼。便於實施人員更新程式碼。
比如:都載入D:\java\project的程式碼。專案的上下文為 project(專案的上下文要和Tomact的localhost資料夾下面的檔案XXX.xml名稱一致)
在Tomact的localhost資料夾下面project.xml檔案
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/Admin" docBase="D:\java\project
重啟Tomact後,在瀏覽器中輸入:http://127.0.0.1:8080/project訪問成功!虛擬圖片路徑配置成功!
5、Tomact中併發配置的優化
在Tomcat 配置檔案 server.xml 中的 <Connector ... /> 配置中。
引數的說明:
minProcessors:最小空閒連線執行緒數,用於提高系統處理效能,預設值為 10
maxProcessors:最大連線執行緒數,即:併發處理的最大請求數,預設值為 75
acceptCount:允許的最大連線數,應大於等於 maxProcessors ,預設值為 100
enableLookups:是否反查域名,取值為: true 或 false 。為了提高處理能力,應設定為 false
connectionTimeout:網路連線超時,單位:毫秒。設定為 0 表示永不超時,這樣設定有隱患的。通常可設定為 30000 毫秒。
其中和最大連線數相關的引數為maxProcessors 和 acceptCount 。如果要加大併發連線數,應同時加大這兩個引數。
web server允許的最大連線數還受制於作業系統的核心引數設定,通常 Windows 是 2000 個左右, Linux 是 1000 個左右。
更改後的配置
<Connector port="8085" protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
minProcessors="10"
maxProcessors="100"
connectionTimeout="20000"
acceptCount="1000"
disableUploadTimeout="true"
redirectPort="8443" />
6、調整聯結器connector的併發處理能力
在Tomcat 配置檔案server.xml
中的<Connector ... /> 配置中。
引數的說明:
maxThreads 客戶請求最大執行緒數
minSpareThreads Tomcat初始化時建立的socket 執行緒數
maxSpareThreads Tomcat聯結器的最大空閒socket 執行緒數
enableLookups 若設為true, 則支援域名解析,可把ip 地址解析為主機名
redirectPort 在需要基於安全通道的場合,把客戶請求轉發到基於SSL 的redirectPort 埠
acceptAccount 監聽埠佇列最大數,滿了之後客戶請求會被拒絕(不能小於maxSpareThreads )
connectionTimeout 連線超時
minProcessors 伺服器建立時的最小處理執行緒數
maxProcessors 伺服器同時最大處理執行緒數
URIEncoding URL統一編碼
配置例子:
<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"/>
7、Tomact中的快取處理
在Tomcat 配置檔案server.xml
中的<Connector ... /> 配置中。
引數介紹:
compression開啟壓縮功能
compressionMinSize 啟用壓縮的輸出內容大小,這裡面預設為2KB
compressableMimeType壓縮型別
connectionTimeout定義建立客戶連線超時的時間. 如果為 -1, 表示不限制建立客戶連線的時間
配置例子:
<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"/>
8、Tomact中配置JNDI資料來源
在localhost中新建一個XML檔案。
<?xml version="1.0" encoding="UTF-8"?>
<!-- docBase是專案的原始碼的路徑也可以是部署包的路徑 path和檔名一致,也就是專案的上下文-->
<Context path="/zjwtView" docBase="D:\eclipseWork\zjwtView\WebRoot" debug="0" reloadable="false" >
<Resource name="jndi/view"
auth="Container"
type="javax.sql.DataSource"
driverClassName="net.sourceforge.jtds.jdbc.Driver"
url="jdbc:jtds:sqlserver://192.168.200.112:1433/cms_zhj_eabox"
username="cms_zhj_eabox"
password="p"
maxActive="50"
maxIdle="10"
maxWait="10000"
removeabandoned="true"
removeabandonedtimeout="60"
logabandoned="false"/>
<ResourceLink global="UserDatabase" name="users" type="org.apache.catalina.UserDatabase"/>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="zjwtView-jndi." suffix=".log" timestamp="true"/>
</Context>
在專案中web.xml中配置一下程式碼
<resource-ref>
<res-ref-name>jndi/zjxfView</res-ref-name><!--jndi/zjxfView 就是localhost中檔案的名稱-->
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>