tomcat常見問題

1.apr
許多朋友可能在啓動tomcat的時候都會看到相似這樣的信息:javascript

引用
org.apache.catalina.core.AprLifecycleListener init
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Java\jre\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS


出現這種狀況是這表示沒有找到APR
簡要解決辦法:去 http://tomcat.heanet.ie/native/ 下載編譯好的tcnative-1.dll文件,目前最新爲1.1.14,拷貝至jdk\bin下,再啓動就能夠成功加載APR了。css

引用
org.apache.catalina.core.AprLifecycleListener init
信息: Loaded Apache Tomcat Native library 1.1.14.
org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [false], sendfile [true], accept filters [false], random [true].


2.URIEncoding
有時候在作開發的時候常常發現文本框輸入的中文到了程序中成了亂碼,實際上是由於在端口監聽部分缺乏編碼。html

Xml代碼
  1. URIEncoding="UTF-8"   


解決方法以下:
原始部分
8080端口上java

Xml代碼
  1. <Connector port="8080" protocol="HTTP/1.1"   
  2.                connectionTimeout="20000"   
  3.                redirectPort="8443" />  


修改後web

Xml代碼
  1. <Connector port="8080" protocol="HTTP/1.1"   
  2.                connectionTimeout="20000"   
  3.                redirectPort="8443" URIEncoding="UTF-8" />  


8009端口 ajp跳轉服務上,關於這個端口在apache http 作跳轉時,要至關注意apache

Xml代碼
  1. <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />  


修改後json

Xml代碼
  1. <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />  


這樣,服務器獲得的中文字符就不會再有亂碼了。

3.設置Tomcat管理員賬號
修改tomcat-users.xml文件,在</tomcat-users>的標籤前添加一行tomcat

Xml代碼
  1. <user username="tomcat" password="tomcat" roles="admin,manager"/>  

讓tomcat用戶擁有管理員權限。

4.設置SSL
首先,咱們要建立密鑰:服務器

Shell代碼
  1. keytool -genkey -alias tomcat -keyalg RSA  


此時,用戶主目錄下會生成一個.keystore文件。
而後,咱們配置server.xml文件,找到SSLEnabled="true"所在的標籤,將其解除註釋,同時填補兩個屬性:
    1.keystoreFile="C:/Users/Zlex/.keystore"
    2.keystorePass="123456"
keystoreFile 指的是你的密鑰文件存儲的路徑,keystorePass指的是你的密碼。
舉例以下:app

Xml代碼
  1. <!--  
  2.     Define a SSL HTTP/1.1 Connector on port 8443 This connector uses the  
  3.     JSSE configuration, when using APR, the connector should be using the  
  4.     OpenSSL style configuration described in the APR documentation  
  5. -->  
  6. <!-- -->  
  7. <Connector  
  8.     SSLEnabled="true"  
  9.     clientAuth="false"  
  10.     keystoreFile="C:/Users/Zlex/.keystore"  
  11.     keystorePass="123456"  
  12.     maxThreads="150"  
  13.     port="8443"  
  14.     protocol="HTTP/1.1"  
  15.     scheme="https"  
  16.     secure="true"  
  17.     sslProtocol="TLS" />  


最後,重啓tomcat,在地址欄中訪問 https://localhost:8443/
將上述port="8443"配置改成port="443",能夠經過https://localhost/直接訪問。
須要雙向認證?參考以下內容:

Xml代碼
  1. <Connector port="443"   
  2.     URIEncoding="UTF-8"   
  3.     useBodyEncodingForURI="true"   
  4.     maxHttpHeaderSize="33192"  
  5.     maxThreads="150"   
  6.     minSpareThreads="25"   
  7.     maxSpareThreads="75"  
  8.     enableLookups="false"  
  9.     disableUploadTimeout="true"   
  10.     acceptCount="100"  
  11.     scheme="https"   
  12.     secure="true"   
  13.     SSLEnabled="true"   
  14.     clientAuth="true"  
  15.     keystoreFile="conf/server.keystore"   
  16.     keystorePass="123456"  
  17.     truststoreFile="conf/ca.p12"   
  18.     truststorePass="123456"  
  19.     truststoreType="PKCS12"  
  20.     sslProtocol="TLS" />   


其中,

Xml代碼
  1. clientAuth="true"  
  2. keystoreFile="conf/server.keystore"   
  3. keystorePass="123456"  
  4. truststoreFile="conf/ca.p12"   
  5. truststorePass="123456"  
  6. truststoreType="PKCS12"  


clientAuth="true"開啓雙向認證
keystoreFile="conf/server.keystore" 指向服務器密鑰庫
keystorePass="123456" 服務器密鑰庫密碼
truststoreFile="conf/ca.p12"指向CA信任庫
truststorePass="123456"CA信任庫密碼
truststoreType="PKCS12"CA信任庫格式,除了PKCS#12還有JKS,JKS爲java原生默認支持的密鑰庫格式!
更多ssl配置訪問http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html

5.經過GZIP壓縮加速服務器響應速度

只須要配置:

Xml代碼
  1. <Connector   
  2.               port="8080"   
  3.               protocol="HTTP/1.1"  
  4.               connectionTimeout="20000"  
  5.               redirectPort="443"   
  6.               URIEncoding="UTF-8"  
  7.               compression="on"     
  8.               noCompressionUserAgents="gozilla, traviata"     
  9.               compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json"   
  10. />    


說說配置細節:
compression="on"   開啓壓縮支持
noCompressionUserAgents="gozilla, traviata"   不壓縮的內容
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json" 壓縮的類型

以後進行的訪問都可得到GZIP壓縮支持


6.設置靜態頁面編碼
修改web.xml
加入以下內容,是*.hml、*.html靜態頁面默認字符集編碼爲UTF-8

Xml代碼
  1. <mime-mapping>  
  2.     <extension>htm</extension>  
  3.     <mime-type>text/html;charset=utf-8</mime-type>  
  4. </mime-mapping>  
  5. <mime-mapping>  
  6.     <extension>html</extension>  
  7.     <mime-type>text/html;charset=utf-8</mime-type>  
  8. </mime-mapping>  




7.配置JVM
找到JAVA_OPTS進行配置:

Java代碼
  1. JAVA_OPTS="-Xms512m -Xmx512m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8" 

8.啓動窗口一閃而過

正確配置jdk環境變量:JAVA_HOME=xxxxx

 

轉載地址:https://snowolf.iteye.com/blog/145770

相關文章
相關標籤/搜索