## Tomcat
* [1.Tomcatç缺çç«¯å£æ¯å¤å°ï¼æä¹ä¿®æ¹ï¼](#1tomcatç缺çç«¯å£æ¯å¤å°æä¹ä¿®æ¹)
* [2.tomcat æåªå ç§Connector è¿è¡æ¨¡å¼(ä¼å)ï¼](#2tomcat-æåªå ç§connector-è¿è¡æ¨¡å¼ä¼å)
* [3.Tomcatæå ç§é¨ç½²æ¹å¼ï¼](#3tomcatæå ç§é¨ç½²æ¹å¼)
* [4.tomcat容卿¯å¦ä½å建servletç±»å®ä¾ï¼ç¨å°äºä»ä¹åçï¼](#4tomcat容卿¯å¦ä½å建servletç±»å®ä¾ç¨å°äºä»ä¹åç)
* [5.tomcat å¦ä½ä¼åï¼](#5tomcat-å¦ä½ä¼å)
* [6.tomcatå
åè°ä¼äºè§£è¿åï¼](#6tomcatå
åè°ä¼äºè§£è¿å)
* [7.tomcatåå¾åæ¶çç¥è°ä¼äºè§£åï¼](#7tomcatåå¾åæ¶çç¥è°ä¼äºè§£å)
* [8.tomcatå
±äº«sessionå¦ä½å¤çï¼](#8tomcatå
±äº«sessionå¦ä½å¤ç)
* [9.å¦ä½æ·»å JMSè¿ç¨çæ§](#9å¦ä½æ·»å jmsè¿ç¨çæ§)
* [10.Tomcatä¸ä¸ªè¯·æ±ç宿´è¿ç¨](#10tomcatä¸ä¸ªè¯·æ±ç宿´è¿ç¨)
* [åèèµæ](#åèèµæ)
#### 1.Tomcatç缺çç«¯å£æ¯å¤å°ï¼æä¹ä¿®æ¹ï¼
```
1ï¼æ¾å°Tomcatç®å½ä¸çconfæä»¶å¤¹
2ï¼è¿å
¥confæä»¶å¤¹é颿¾å°server.xmlæä»¶
3ï¼æå¼server.xmlæä»¶
4ï¼å¨server.xmlæä»¶é颿¾å°ä¸åä¿¡æ¯
port="8080"æ¹æä½ æ³è¦ç端å£
```
#### 2.tomcat æåªå ç§Connector è¿è¡æ¨¡å¼(ä¼å)ï¼
```
bioï¼ä¼ ç»çJava I/Oæä½ï¼åæ¥ä¸é»å¡IOã
maxThreads="150"//Tomcat使ç¨çº¿ç¨æ¥å¤çæ¥æ¶çæ¯ä¸ªè¯·æ±ãè¿ä¸ªå¼è¡¨ç¤ºTomcatå¯å建çæå¤§ççº¿ç¨æ°ãé»è®¤å¼200ãå¯ä»¥æ ¹æ®æºå¨çæ¶ææ§è½åå
å大å°è°æ´ï¼ä¸è¬å¯ä»¥å¨400-500ãæå¤§å¯ä»¥å¨800å·¦å³ã
minSpareThreads="25"---Tomcatåå§åæ¶å建ççº¿ç¨æ°ãé»è®¤å¼4ã妿å½å没æç©ºé²çº¿ç¨ï¼ä¸æ²¡æè¶
è¿maxThreadsï¼ä¸æ¬¡æ§å建ç空é²çº¿ç¨æ°éãTomcatåå§åæ¶å建ççº¿ç¨æ°éä¹ç±æ¤å¼è®¾ç½®ã
maxSpareThreads="75"--䏿¦å建ç线ç¨è¶
è¿è¿ä¸ªå¼ï¼Tomcatå°±ä¼å
³éä¸åéè¦çsocket线ç¨ãé»è®¤å¼50ã䏿¦å建ç线ç¨è¶
è¿æ¤æ°å¼ï¼Tomcatä¼å
³éä¸åéè¦ç线ç¨ãçº¿ç¨æ°å¯ä»¥å¤§è´ä¸ç¨ âåæ¶å¨çº¿äººæ°*æ¯ç§ç¨æ·æä½æ¬¡æ°*ç³»ç»å¹³åæä½æ¶é´â æ¥è®¡ç®ã
acceptCount="100"----æå®å½ææå¯ä»¥ä½¿ç¨çå¤ç请æ±ççº¿ç¨æ°é½è¢«ä½¿ç¨æ¶ï¼å¯ä»¥æ¾å°å¤çéåä¸çè¯·æ±æ°ï¼è¶
è¿è¿ä¸ªæ°ç请æ±å°ä¸äºå¤çãé»è®¤å¼10ã妿å½åå¯ç¨çº¿ç¨æ°ä¸º0ï¼åå°è¯·æ±æ¾å
¥å¤çéåä¸ãè¿ä¸ªå¼éå®äºè¯·æ±éåç大å°ï¼è¶
è¿è¿ä¸ªæ°å¼ç请æ±å°ä¸äºå¤çã
connectionTimeout="20000" --ç½ç»è¿æ¥è¶
æ¶ï¼é»è®¤å¼20000ï¼åä½ï¼æ¯«ç§ã设置为0表示永ä¸è¶
æ¶ï¼è¿æ ·è®¾ç½®æéæ£çãé常å¯è®¾ç½®ä¸º30000毫ç§ã
nioï¼JDK1.4å¼å§æ¯æï¼åæ¥é»å¡æåæ¥éé»å¡IOã
æå®ä½¿ç¨NIOæ¨¡åæ¥æ¥åHTTP请æ±
protocol="org.apache.coyote.http11.Http11NioProtocol" æå®ä½¿ç¨NIOæ¨¡åæ¥æ¥åHTTP请æ±ãé»è®¤æ¯BlockingIOï¼é
置为protocol="HTTP/1.1"
acceptorThreadCount="2" 使ç¨NIOæ¨¡åæ¶æ¥æ¶çº¿ç¨çæ°ç®
aio(nio.2)ï¼JDK7å¼å§æ¯æï¼å¼æ¥éé»å¡IOã
aprï¼Tomcatå°ä»¥JNIçå½¢å¼è°ç¨Apache HTTPæå¡å¨çæ ¸å¿å¨æé¾æ¥åºæ¥å¤çæä»¶è¯»åæç½ç»ä¼ è¾æä½ï¼ä»èå¤§å¤§å° æé«Tomcat坹鿿件çå¤çæ§è½ã
å
¶ä»é
ç½®
maxHttpHeaderSize="8192" http请æ±å¤´ä¿¡æ¯çæå¤§ç¨åº¦ï¼è¶
è¿æ¤é¿åº¦çé¨åä¸äºå¤çãä¸è¬8Kã
URIEncoding="UTF-8" æå®Tomcat容å¨çURLç¼ç æ ¼å¼ã
disableUploadTimeout="true" ä¸ä¼ æ¶æ¯å¦ä½¿ç¨è¶
æ¶æºå¶
enableLookups="false"--æ¯å¦åæ¥ååï¼é»è®¤å¼ä¸ºtrueãä¸ºäºæé«å¤çè½åï¼åºè®¾ç½®ä¸ºfalse
compression="on" æå¼å缩åè½
compressionMinSize="10240" å¯ç¨å缩çè¾åºå
容大å°ï¼é»è®¤ä¸º2KB
noCompressionUserAgents="gozilla, traviata" 对äºä»¥ä¸çæµè§å¨ï¼ä¸å¯ç¨å缩
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" åªäºèµæºç±»åéè¦å缩
```
#### 3.Tomcatæå ç§é¨ç½²æ¹å¼ï¼
1ï¼ç´æ¥æWebé¡¹ç®æ¾å¨webappsä¸ï¼Tomcatä¼èªå¨å°å
¶é¨ç½²
2ï¼å¨server.xmlæä»¶ä¸é
ç½® Context èç¹ï¼è®¾ç½®ç¸å
³ç屿§å³å¯
3ï¼éè¿Catalinaæ¥è¿è¡é
ç½®:è¿å
¥å°conf\Catalina\localhostæä»¶ä¸ï¼å建ä¸ä¸ªxmlæä»¶ï¼è¯¥æä»¶çååå°±æ¯ç«ç¹çååã
ç¼åXMLçæ¹å¼æ¥è¿è¡è®¾ç½®ã
#### 4.tomcat容卿¯å¦ä½å建servletç±»å®ä¾ï¼ç¨å°äºä»ä¹åçï¼
å½å®¹å¨å¯å¨æ¶ï¼ä¼è¯»åå¨webappsç®å½ä¸ææçwebåºç¨ä¸çweb.xmlæä»¶ï¼ç¶å对xmlæä»¶è¿è¡è§£æï¼
并读åservlet注åä¿¡æ¯ãç¶åï¼å°æ¯ä¸ªåºç¨ä¸æ³¨åçservletç±»é½è¿è¡å è½½ï¼å¹¶éè¿åå°çæ¹å¼å®ä¾åã
ï¼ææ¶å乿¯å¨ç¬¬ä¸æ¬¡è¯·æ±æ¶å®ä¾åï¼å¨servletæ³¨åæ¶å ä¸å¦æä¸ºæ£æ°ï¼åå¨ä¸å¼å§å°±å®ä¾åï¼
妿ä¸åæä¸ºè´æ°ï¼åç¬¬ä¸æ¬¡è¯·æ±å®ä¾åã
#### 5.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 decoding
req.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â>
好äºï¼ææçTomcatä¼åçå°æ¹é½å ä¸äºã
```
#### 6.tomcatå
åè°ä¼äºè§£è¿åï¼
```
å
åæ¹å¼ç设置æ¯å¨catalina.shä¸ï¼è°æ´ä¸ä¸JAVA_OPTSåéå³å¯ï¼å 为åé¢çå¯å¨åæ°ä¼æJAVA_OPTSä½ä¸ºJVMçå¯å¨åæ°æ¥å¤çã
å
·ä½è®¾ç½®å¦ä¸ï¼
JAVA_OPTS="$JAVA_OPTS -Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4"
å
¶å项忰å¦ä¸ï¼
-Xmx3550mï¼è®¾ç½®JVMæå¤§å¯ç¨å
å为3550Mã
-Xms3550mï¼è®¾ç½®JVMä¿ä½¿å
å为3550mãæ¤å¼å¯ä»¥è®¾ç½®ä¸-Xmxç¸åï¼ä»¥é¿å
æ¯æ¬¡åå¾åæ¶å®æåJVMéæ°åé
å
åã
-Xmn2gï¼è®¾ç½®å¹´è½»ä»£å¤§å°ä¸º2Gãæ´ä¸ªå 大å°=å¹´è½»ä»£å¤§å° + å¹´èä»£å¤§å° + æä¹
代大å°ãæä¹
代ä¸è¬åºå®å¤§å°ä¸º64mï¼æä»¥å¢å¤§å¹´è½»ä»£åï¼å°ä¼åå°å¹´è代大å°ãæ¤å¼å¯¹ç³»ç»æ§è½å½±åè¾å¤§ï¼Sun宿¹æ¨èé
置为æ´ä¸ªå ç3/8ã
-Xss128kï¼è®¾ç½®æ¯ä¸ªçº¿ç¨çå æ 大å°ãJDK5.0ä»¥åæ¯ä¸ªçº¿ç¨å æ 大å°ä¸º1Mï¼ä»¥åæ¯ä¸ªçº¿ç¨å æ 大å°ä¸º256Kãæ´å
·åºç¨ççº¿ç¨æéå
å大å°è¿è¡è°æ´ãå¨ç¸åç©çå
åä¸ï¼åå°è¿ä¸ªå¼è½çææ´å¤ç线ç¨ã使¯æä½ç³»ç»å¯¹ä¸ä¸ªè¿ç¨å
ççº¿ç¨æ°è¿æ¯æéå¶çï¼ä¸è½æ éçæï¼ç»éªå¼å¨3000~5000å·¦å³ã
-XX:NewRatio=4:设置年轻代ï¼å
æ¬Edenå两个Survivoråºï¼ä¸å¹´èä»£çæ¯å¼ï¼é¤å»æä¹
代ï¼ã设置为4ï¼å年轻代ä¸å¹´è代æå æ¯å¼ä¸º1ï¼4ï¼å¹´è½»ä»£å æ´ä¸ªå æ ç1/5
-XX:SurvivorRatio=4ï¼è®¾ç½®å¹´è½»ä»£ä¸Edenåºä¸Survivoråºç大尿¯å¼ã设置为4ï¼å两个Survivoråºä¸ä¸ä¸ªEdenåºçæ¯å¼ä¸º2:4ï¼ä¸ä¸ªSurvivoråºå æ´ä¸ªå¹´è½»ä»£ç1/6
-XX:MaxPermSize=16m:设置æä¹
代大å°ä¸º16mã
-XX:MaxTenuringThreshold=0ï¼è®¾ç½®å徿大年é¾ãå¦æè®¾ç½®ä¸º0çè¯ï¼å年轻代对象ä¸ç»è¿Survivoråºï¼ç´æ¥è¿å
¥å¹´è代ã对äºå¹´è代æ¯è¾å¤çåºç¨ï¼å¯ä»¥æé«æçã妿尿¤å¼è®¾ç½®ä¸ºä¸ä¸ªè¾å¤§å¼ï¼å年轻代对象ä¼å¨Survivoråºè¿è¡å¤æ¬¡å¤å¶ï¼è¿æ ·å¯ä»¥å¢å 对象å年轻代çåæ´»æ¶é´ï¼å¢å å¨å¹´è½»ä»£å³è¢«åæ¶çæ¦è®ºã
```
#### 7.tomcatåå¾åæ¶çç¥è°ä¼äºè§£åï¼
```
åå¾åæ¶çè®¾ç½®ä¹æ¯å¨catalina.shä¸ï¼è°æ´JAVA_OPTSåéã
å
·ä½è®¾ç½®å¦ä¸ï¼
JAVA_OPTS="$JAVA_OPTS -Xmx3550m -Xms3550m -Xss128k -XX:+UseParallelGC -XX:MaxGCPauseMillis=100"
å
·ä½çåå¾åæ¶çç¥åç¸åºçç¥çå项忰å¦ä¸ï¼
ä¸²è¡æ¶éå¨ï¼JDK1.5以å主è¦çåæ¶æ¹å¼ï¼
-XX:+UseSerialGC:è®¾ç½®ä¸²è¡æ¶éå¨
å¹¶è¡æ¶éå¨ï¼ååéä¼å
ï¼
示ä¾ï¼
java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:MaxGCPauseMillis=100
-XX:+UseParallelGCï¼éæ©å徿¶éå¨ä¸ºå¹¶è¡æ¶éå¨ãæ¤é
ç½®ä»
对年轻代ææãå³ä¸è¿°é
ç½®ä¸ï¼å¹´è½»ä»£ä½¿ç¨å¹¶åæ¶éï¼èå¹´è代仿§ä½¿ç¨ä¸²è¡æ¶éã
-XX:ParallelGCThreads=20ï¼é
ç½®å¹¶è¡æ¶éå¨ççº¿ç¨æ°ï¼å³ï¼åæ¶å¤å°ä¸ªçº¿ç¨ä¸èµ·è¿è¡åå¾åæ¶ãæ¤å¼æå¥½é
ç½®ä¸å¤ç卿°ç®ç¸çã
-XX:+UseParallelOldGCï¼é
置年è代å徿¶éæ¹å¼ä¸ºå¹¶è¡æ¶éãJDK6.0æ¯æå¯¹å¹´èä»£å¹¶è¡æ¶é
-XX:MaxGCPauseMillis=100:è®¾ç½®æ¯æ¬¡å¹´è½»ä»£åå¾åæ¶çæé¿æ¶é´ï¼å¦ææ æ³æ»¡è¶³æ¤æ¶é´ï¼JVMä¼èªå¨è°æ´å¹´è½»ä»£å¤§å°ï¼ä»¥æ»¡è¶³æ¤å¼ã
-XX:+UseAdaptiveSizePolicyï¼è®¾ç½®æ¤é项åï¼å¹¶è¡æ¶éå¨ä¼èªå¨éæ©å¹´è½»ä»£åºå¤§å°åç¸åºçSurvivoråºæ¯ä¾ï¼ä»¥è¾¾å°ç®æ ç³»ç»è§å®çæä½ç¸åºæ¶é´æè
æ¶éé¢ççï¼æ¤å¼å»ºè®®ä½¿ç¨å¹¶è¡æ¶é卿¶ï¼ä¸ç´æå¼ã
å¹¶åæ¶éå¨ï¼ååºæ¶é´ä¼å
ï¼
示ä¾ï¼java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseConcMarkSweepGC
-XX:+UseConcMarkSweepGCï¼è®¾ç½®å¹´èä»£ä¸ºå¹¶åæ¶éãæµè¯ä¸é
ç½®è¿ä¸ªä»¥åï¼-XX:NewRatio=4çé
置失æäºï¼åå 䏿ãæä»¥ï¼æ¤æ¶å¹´è½»ä»£å¤§å°æå¥½ç¨-Xmn设置ã
-XX:+UseParNewGC: è®¾ç½®å¹´è½»ä»£ä¸ºå¹¶è¡æ¶éãå¯ä¸CMSæ¶éåæ¶ä½¿ç¨ãJDK5.0以ä¸ï¼JVM伿 ¹æ®ç³»ç»é
ç½®èªè¡è®¾ç½®ï¼æä»¥æ éå设置æ¤å¼ã
-XX:CMSFullGCsBeforeCompactionï¼ç±äºå¹¶åæ¶éå¨ä¸å¯¹å
å空é´è¿è¡åç¼©ãæ´çï¼æä»¥è¿è¡ä¸æ®µæ¶é´ä»¥åä¼äº§çâç¢çâï¼ä½¿å¾è¿è¡æçéä½ãæ¤å¼è®¾ç½®è¿è¡å¤å°æ¬¡GC以å对å
å空é´è¿è¡åç¼©ãæ´çã
-XX:+UseCMSCompactAtFullCollectionï¼æå¼å¯¹å¹´è代çå缩ãå¯è½ä¼å½±åæ§è½ï¼ä½æ¯å¯ä»¥æ¶é¤ç¢ç
```
#### 8.tomcatå
±äº«sessionå¦ä½å¤çï¼
ç®åçå¤çæ¹å¼æå¦ä¸å ç§ï¼
1).使ç¨Tomcatæ¬èº«çSessionå¤å¶åè½
åèhttp://ajita.iteye.com/blog/1715312ï¼Sessionå¤å¶çé
ç½®ï¼
æ¹æ¡çæç¹æ¯é
ç½®ç®åï¼ç¼ºç¹æ¯å½é群æ°éè¾å¤æ¶ï¼Sessionå¤å¶çæ¶é´ä¼æ¯è¾é¿ï¼å½±åååºçæç
2).使ç¨ç¬¬ä¸æ¹æ¥åæ¾å
񄧮Session
ç®åç¨çè¾å¤çæ¯ä½¿ç¨memcachedæ¥ç®¡çå
±äº«Sessionï¼åå©äºmemcached-sesson-manageræ¥è¿è¡TomcatçSession管ç
åèhttp://ajita.iteye.com/blog/1716320ï¼ä½¿ç¨MSM管çTomcaté群sessionï¼
3).使ç¨é»æ§sessionççç¥
对äºä¼è¯è¦æ±ä¸å¤ªå¼ºï¼ä¸æ¶åå°è®¡è´¹ï¼å¤±è´¥äºå
è®¸éæ°è¯·æ±ä¸çï¼çåºåï¼åä¸ä¸ªç¨æ·çsessionå¯ä»¥ç±nginxæè
apache交ç»åä¸ä¸ªTomcatæ¥å¤çï¼è¿å°±æ¯æè°çsession stickyçç¥ï¼ç®ååºç¨ä¹æ¯è¾å¤
åèï¼http://ajita.iteye.com/blog/1848665ï¼tomcat session stickyï¼
nginxé»è®¤ä¸å
å«session sticky模åï¼éè¦éæ°ç¼è¯æè¡ï¼windows䏿ä¹ä¸ç¥éæä¹éæ°ç¼è¯ï¼
ä¼ç¹æ¯å¤çæçé«å¤äºï¼ç¼ºç¹æ¯å¼ºä¼è¯è¦æ±çåºåä¸åé
#### 9.å¦ä½æ·»å JMSè¿ç¨çæ§
```
对äºé¨ç½²å¨å±åç½å
å
¶å®æºå¨ä¸çTomcatï¼å¯ä»¥æå¼JMXçæ§ç«¯å£ï¼å±åç½å
¶å®æºå¨å°±å¯ä»¥éè¿è¿ä¸ªç«¯å£æ¥çä¸äºå¸¸ç¨çåæ°ï¼ä½ä¸äºæ¯è¾å¤æçåè½ä¸æ¯æï¼ï¼åæ ·æ¯å¨JVMå¯å¨åæ°ä¸é
ç½®å³å¯ï¼é
ç½®å¦ä¸ï¼
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=192.168.71.38 设置JVMçJMSçæ§çå¬çIPå°åï¼ä¸»è¦æ¯ä¸ºäºé²æ¢é误çç嬿127.0.0.1è¿ä¸ªå
ç½å°å
-Dcom.sun.management.jmxremote.port=1090 设置JVMçJMSçæ§ç端å£
-Dcom.sun.management.jmxremote.ssl=false 设置JVMçJMSçæ§ä¸å®ç¨SSL
-Dcom.sun.management.jmxremote.authenticate=false 设置JVMçJMSçæ§ä¸éè¦è®¤è¯
```
#### 10.Tomcatä¸ä¸ªè¯·æ±ç宿´è¿ç¨
é¦å
dns è§£æ wo.de.tianæºå¨ï¼ä¸è¬æ¯ngæå¡å¨ipå°å
ç¶å ngæ ¹æ®serverçé
ç½®ï¼å¯»æ¾è·¯å¾ä¸º yy/çæºå¨å表ï¼ipå端å£
æå éæ©å
¶ä¸ä¸å°æºå¨è¿è¡è®¿é®â->ä¸é¢ä¸ºè¯¦ç»è¿ç¨
1) 请æ±è¢«åéå°æ¬æºç«¯å£8080ï¼è¢«å¨é£é侦å¬çCoyote HTTP/1.1 Connectorè·å¾
2) Connectoræè¯¥è¯·æ±äº¤ç»å®æå¨çServiceçEngineæ¥å¤çï¼å¹¶çå¾
æ¥èªEngineçååº
3) Engineè·å¾è¯·æ±localhost/yy/index.jspï¼å¹é
å®ææ¥æçææèæä¸»æºHost
4) Engineå¹é
å°å为localhostçHostï¼å³ä½¿å¹é
ä¸å°ä¹æè¯·æ±äº¤ç»è¯¥Hostå¤çï¼å 为该Host被å®ä¹ä¸ºè¯¥Engineçé»è®¤ä¸»æºï¼
5) localhost Hostè·å¾è¯·æ±/yy/index.jspï¼å¹é
å®ææ¥æçææContext
6) Hostå¹é
å°è·¯å¾ä¸º/yyçContextï¼å¦æå¹é
ä¸å°å°±æè¯¥è¯·æ±äº¤ç»è·¯å¾å为ââçContextå»å¤çï¼
7) path=â/yyâçContextè·å¾è¯·æ±/index.jspï¼å¨å®çmapping tableä¸å¯»æ¾å¯¹åºçservlet
8) Contextå¹é
å°URL PATTERN为*.jspçservletï¼å¯¹åºäºJspServletç±»
9) æé HttpServletRequest对象åHttpServletResponse对象ï¼ä½ä¸ºåæ°è°ç¨JspServletçdoGetædoPostæ¹æ³
10)Contextææ§è¡å®äºä¹åçHttpServletResponse对象è¿åç»Host
11)HostæHttpServletResponse对象è¿åç»Engine
12)EngineæHttpServletResponse对象è¿åç»Connector
13)ConnectoræHttpServletResponse对象è¿åç»å®¢æ·browser
#### åèèµæ
https://blog.csdn.net/qq_25934401/article/details/81536958