[轉]伺服器部署 Tomcat等的應用

來源:互聯網
上載者:User

標籤:

1.Tomcat的連接埠怎麼修改?

Tomcat的預設連接埠號碼是8080.
修改Tomcat連接埠號碼:
1.找到Tomcat目錄下的conf檔案夾
2.進入conf檔案夾裡面找到server.xml檔案
3.開啟server.xml檔案
4.在server.xml檔案裡面找到下列資訊
maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″
enableLookups=”false” redirectPort=”8443″ acceptCount=”100″
connectionTimeout=”20000″ disableUploadTimeout=”true” />
5.把port=”8080″改成port=”8888″,並且儲存
6.啟動Tomcat,並且在IE瀏覽器裡面的地址欄輸入http://127.0.0.1:8888/

2.tomcat 如何最佳化?1、最佳化串連配置

這裡以tomcat7的參數配置為例,需要修改conf/server.xml檔案,修改串連數,關閉用戶端dns查詢。

參數解釋:

URIEncoding=”UTF-8″ :使得tomcat可以解析含有中文名的檔案的url,真方便,不像apache裡還有搞個mod_encoding,還要手工編譯

maxSpareThreads : 如果空閑狀態的線程數多於設定的數目,則將這些線程中止,減少這個池中的線程總數。

minSpareThreads : 最小備用線程數,tomcat啟動時的初始化的線程數。

enableLookups : 這個功效和Apache中的HostnameLookups一樣,設為關閉。

connectionTimeout : connectionTimeout為網路連接逾時時間毫秒數。

maxThreads : maxThreads Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可建立的最大的線程數,即最大並發數。

acceptCount : acceptCount是當線程數達到maxThreads後,後續請求會被放入一個等待隊列,這個acceptCount是這個隊列的大小,如果這個隊列也滿了,就直接refuse connection

maxProcessors與minProcessors : 在 Java中線程是程式運行時的路徑,是在一個程式中與其它控制線程無關的、能夠獨立啟動並執行程式碼片段。它們共用相同的地址空間。多線程協助程式員寫出CPU最 大利用率的高效程式,使空閑時間保持最低,從而接受更多的請求。

通常Windows是1000個左右,Linux是2000個左右。

useURIValidationHack:

我們來看一下tomcat中的一段源碼:

【security】

if (connector.getUseURIValidationHack()) {String uri = validate(request.getRequestURI());if (uri == null) {res.setStatus(400);res.setMessage(“Invalid URI”);throw new IOException(“Invalid URI”);} else {req.requestURI().setString(uri);// Redoing the URI decodingreq.decodedURI().duplicate(req.requestURI());req.getURLDecoder().convert(req.decodedURI(), true);}}

  

可以看到如果把useURIValidationHack設成”false”,可以減少它對一些url的不必要的檢查從而減省開銷。

enableLookups=”false” : 為了消除DNS查詢對效能的影響我們可以關閉DNS查詢,方式是修改server.xml檔案中的enableLookups參數值。

disableUploadTimeout :類似於Apache中的keeyalive一樣

給Tomcat配置gzip壓縮(HTTP壓縮)功能

compression=”on” compressionMinSize=”2048″compressableMimeType=”text/html,text/xml,text/javascript,text/css,text/plain”

  

HTTP 壓縮可以大大提高瀏覽網站的速度,它的原理是,在用戶端請求網頁後,從伺服器端將網頁檔案壓縮,再下載到用戶端,由用戶端的瀏覽器負責解壓縮並瀏覽。相對於普通的瀏覽過程HTML,CSS,Javascript , Text ,它可以節省40%左右的流量。更為重要的是,它可以對動態產生的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等輸出的網頁也能進行壓縮,壓縮效率驚人。

1)compression=”on” 開啟壓縮功能

2)compressionMinSize=”2048″ 啟用壓縮的輸出內容大小,這裡面預設為2KB

3)noCompressionUserAgents=”gozilla, traviata” 對於以下的瀏覽器,不啟用壓縮

4)compressableMimeType=”text/html,text/xml” 壓縮類型

最後不要忘了把8443連接埠的地方也加上同樣的配置,因為如果我們走https協議的話,我們將會用到8443連接埠這個段的配置,對吧?

<!–enable tomcat ssl–><Connector port=”8443″ protocol=”HTTP/1.1″URIEncoding=”UTF-8″ minSpareThreads=”25″ maxSpareThreads=”75″enableLookups=”false” disableUploadTimeout=”true” connectionTimeout=”20000″acceptCount=”300″ maxThreads=”300″ maxProcessors=”1000″ minProcessors=”5″useURIValidationHack=”false”compression=”on” compressionMinSize=”2048″compressableMimeType=”text/html,text/xml,text/javascript,text/css,text/plain”SSLEnabled=”true”scheme=”https” secure=”true”clientAuth=”false” sslProtocol=”TLS”keystoreFile=”d:/tomcat2/conf/shnlap93.jks” keystorePass=”aaaaaa”/>

  

好了,所有的Tomcat最佳化的地方都加上了。

2、最佳化JDK

Tomcat預設可以使用的記憶體為128MB,Windows下,在檔案{tomcat_home}/bin/catalina.bat,Unix下,在檔案$CATALINA_HOME/bin/catalina.sh的前面,增加如下設定:
JAVA_OPTS=”‘$JAVA_OPTS” -Xms[初始化記憶體大小] -Xmx[可以使用的最大記憶體]

設定環境變數:export JAVA_OPTS=””$JAVA_OPTS” -Xms[初始化記憶體大小] -Xmx[可以使用的最大記憶體]”
一般說來,你應該使用實體記憶體的 80% 作為堆大小。如果本機上有Apache伺服器,可以先折算Apache需要的記憶體,然後修改堆大小。建議設定為70%;建議設定[[初始化記憶體大小]等於[可以使用的最大記憶體],這樣可以減少平凡分配堆而降低效能。
本例使用加入環境變數的方式:
# vi /etc/profile
加入:export JAVA_OPTS=””$JAVA_OPTS” -Xms700 —Xmx700
# source /etc/profile

【參數說明】

-Xms 是指設定程式啟動時佔用記憶體大小。一般來講,大點,程式會啟動的 快一點,但是也可能會導致機器暫時間變慢。

-Xmx 是指設定程式運行期間最大可佔用的記憶體大小。如果程式運行需要佔 用更多的記憶體,超出了這個設定值,就會拋出OutOfMemory 異常。

-Xss 是指設定每個線程的堆棧大小。這個就要依據你的程式,看一個線程 大約需要佔用多少記憶體,可能會有多少線程同時運行等。

-XX:PermSize設定非堆記憶體初始值,預設是實體記憶體的1/64 。

-XX:MaxPermSize設定最大非堆記憶體的大小,預設是實體記憶體的1/4。


3.tomcat 有那幾種Connector 運行模式?

tomcat的運行模式有3種.修改他們的運行模式.3種模式的運行是否成功,可以看他的啟動控制台,或者開機記錄.或者登入他們的預設頁面http://localhost:8080/查看其中的伺服器狀態。

1)bio

預設的模式,效能非常低下,沒有經過任何最佳化處理和支援.

2)nio

利用java的非同步io護理技術,no blocking IO技術.

想運行在該模式下,直接修改server.xml裡的Connector節點,修改protocol為

<Connector port=”80″ protocol=”org.apache.coyote.http11.Http11NioProtocol”
connectionTimeout=”20000″
URIEncoding=”UTF-8″
useBodyEncodingForURI=”true”
enableLookups=”false”
redirectPort=”8443″ />

啟動後,就可以生效。

3)apr

安裝起來最困難,但是從作業系統層級來解決非同步IO問題,大幅度的提高效能.

必須要安裝apr和native,直接啟動就支援apr。下面的修改純屬多餘,僅供大家擴充知識,但仍然需要安裝apr和native

[轉]伺服器部署 Tomcat等的應用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.