1.Tomcat的端口怎么修改?
Tomcat的缺省端口號是8080.
修改Tomcat端口號:
1.找到Tomcat目錄下的conf文件夾
2.進(jìn)入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 如何優(yōu)化?
1、優(yōu)化連接配置
這里以tomcat7的參數(shù)配置為例,需要修改conf/server.xml文件,修改連接數(shù),關(guān)閉客戶端dns查詢。
參數(shù)解釋:
URIEncoding=”UTF-8″ :使得tomcat可以解析含有中文名的文件的url,真方便,不像apache里還有搞個mod_encoding,還要手工編譯
maxSpareThreads : 如果空閑狀態(tài)的線程數(shù)多于設(shè)置的數(shù)目,則將這些線程中止,減少這個池中的線程總數(shù)。
minSpareThreads : 最小備用線程數(shù),tomcat啟動時的初始化的線程數(shù)。
enableLookups : 這個功效和Apache中的HostnameLookups一樣,設(shè)為關(guān)閉。
connectionTimeout : connectionTimeout為網(wǎng)絡(luò)連接超時時間毫秒數(shù)。
maxThreads : maxThreads Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可創(chuàng)建的最大的線程數(shù),即最大并發(fā)數(shù)。
acceptCount : acceptCount是當(dāng)線程數(shù)達(dá)到maxThreads后,后續(xù)請求會被放入一個等待隊列,這個acceptCount是這個隊列的大小,如果這個隊列也滿了,就直接refuse connection
maxProcessors與minProcessors : 在 Java中線程是程序運行時的路徑,是在一個程序中與其它控制線程無關(guān)的、能夠獨立運行的代碼段。它們共享相同的地址空間。多線程幫助程序員寫出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 decoding req.decodedURI().duplicate(req.requestURI()); req.getURLDecoder().convert(req.decodedURI(), true); } }
可以看到如果把useURIValidationHack設(shè)成”false”,可以減少它對一些url的不必要的檢查從而減省開銷。
enableLookups=”false” : 為了消除DNS查詢對性能的影響我們可以關(guān)閉DNS查詢,方式是修改server.xml文件中的enableLookups參數(shù)值。
disableUploadTimeout :類似于Apache中的keeyalive一樣
給Tomcat配置gzip壓縮(HTTP壓縮)功能
compression=”on” compressionMinSize=”2048″ compressableMimeType=”text/html,text/xml,text/javascript,text/css,text/plain”
HTTP 壓縮可以大大提高瀏覽網(wǎng)站的速度,它的原理是,在客戶端請求網(wǎng)頁后,從服務(wù)器端將網(wǎng)頁文件壓縮,再下載到客戶端,由客戶端的瀏覽器負(fù)責(zé)解壓縮并瀏覽。相對于普通的瀏覽過程HTML,CSS,Javascript , Text ,它可以節(jié)省40%左右的流量。更為重要的是,它可以對動態(tài)生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等輸出的網(wǎng)頁也能進(jìn)行壓縮,壓縮效率驚人。
1)compression=”on” 打開壓縮功能
2)compressionMinSize=”2048″ 啟用壓縮的輸出內(nèi)容大小,這里面默認(rèn)為2KB
3)noCompressionUserAgents=”gozilla, traviata” 對于以下的瀏覽器,不啟用壓縮
4)compressableMimeType=”text/html,text/xml” 壓縮類型
最后不要忘了把8443端口的地方也加上同樣的配置,因為如果我們走h(yuǎn)ttps協(xié)議的話,我們將會用到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優(yōu)化的地方都加上了。
2、優(yōu)化JDK
Tomcat默認(rèn)可以使用的內(nèi)存為128MB,Windows下,在文件{tomcat_home}/bin/catalina.bat,Unix下,在文件$CATALINA_HOME/bin/catalina.sh的前面,增加如下設(shè)置:
JAVA_OPTS=”‘$JAVA_OPTS” -Xms[初始化內(nèi)存大小] -Xmx[可以使用的最大內(nèi)存]
或
設(shè)置環(huán)境變量:export JAVA_OPTS=””$JAVA_OPTS” -Xms[初始化內(nèi)存大小] -Xmx[可以使用的最大內(nèi)存]”
一般說來,你應(yīng)該使用物理內(nèi)存的 80% 作為堆大小。如果本機(jī)上有Apache服務(wù)器,可以先折算Apache需要的內(nèi)存,然后修改堆大小。建議設(shè)置為70%;建議設(shè)置[[初始化內(nèi)存大小]等于[可以使用的最大內(nèi)存],這樣可以減少平凡分配堆而降低性能。
本例使用加入環(huán)境變量的方式:
# vi /etc/profile
加入:export JAVA_OPTS=””$JAVA_OPTS” -Xms700 —Xmx700
# source /etc/profile
【參數(shù)說明】
-Xms 是指設(shè)定程序啟動時占用內(nèi)存大小。一般來講,大點,程序會啟動的 快一點,但是也可能會導(dǎo)致機(jī)器暫時間變慢。
-Xmx 是指設(shè)定程序運行期間最大可占用的內(nèi)存大小。如果程序運行需要占 用更多的內(nèi)存,超出了這個設(shè)置值,就會拋出OutOfMemory 異常。
-Xss 是指設(shè)定每個線程的堆棧大小。這個就要依據(jù)你的程序,看一個線程 大約需要占用多少內(nèi)存,可能會有多少線程同時運行等。
-XX:PermSize設(shè)置非堆內(nèi)存初始值,默認(rèn)是物理內(nèi)存的1/64 。
-XX:MaxPermSize設(shè)置最大非堆內(nèi)存的大小,默認(rèn)是物理內(nèi)存的1/4。
3.tomcat 有那幾種Connector 運行模式?
tomcat的運行模式有3種.修改他們的運行模式.3種模式的運行是否成功,可以看他的啟動控制臺,或者啟動日志.或者登錄他們的默認(rèn)頁面http://localhost:8080/查看其中的服務(wù)器狀態(tài)。
1)bio
默認(rèn)的模式,性能非常低下,沒有經(jīng)過任何優(yōu)化處理和支持.
2)nio
利用java的異步io護(hù)理技術(shù),no blocking IO技術(shù).
想運行在該模式下,直接修改server.xml里的Connector節(jié)點,修改protocol為
<Connector port=”80″ protocol=”org.apache.coyote.http11.Http11NioProtocol”
connectionTimeout=”20000″
URIEncoding=”UTF-8″
useBodyEncodingForURI=”true”
enableLookups=”false”
redirectPort=”8443″ />
啟動后,就可以生效。
3)apr
安裝起來最困難,但是從操作系統(tǒng)級別來解決異步的IO問題,大幅度的提高性能.
必須要安裝apr和native,直接啟動就支持apr。下面的修改純屬多余,僅供大家擴(kuò)充知識,但仍然需要安裝apr和native
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
