webServer tomcat5/tomcat6/tomcat7诠释
Jakata tomcat5
http://mirrors.ccs.neu.edu/Apache/dist/tomcat/tomcat-5/
http://archive.apache.org/dist/jakarta/tomcat-5/?
http://tomcat.apache.org/
http://labs.xiaonei.com/ 由校內網維護的Apache下載鏡像
http://tomcat.apache.org/download-55.cgi
http://apache.mirror.phpchina.com/tomcat/tomcat-5/v5.5.26/bin/apache-tomcat-5.5.26.zip
http://apache.mirror.phpchina.com/tomcat/tomcat-5/v5.5.26/bin/apache-tomcat-5.5.26-admin.zip
http://tomcat.apache.org/download-60.cgi
http://apache.mirror.phpchina.com/tomcat/tomcat-6/v6.0.16/bin/apache-tomcat-6.0.16.zip
http://tomcat.apache.org/download-native.cgi
http://apache.mirror.phpchina.com/tomcat/tomcat-connectors/native/1.1.14/binaries/win32/
http://apache.mirror.phpchina.com/tomcat/tomcat-connectors/native/1.1.16/binaries/win32/
http://tomcat.apache.org/download-connectors.cgi
http://apache.mirror.phpchina.com/tomcat/tomcat-connectors/
http://apache.mirror.phpchina.com/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.26/
Tomcat5 添加管理控制臺
http://localhost:8080/admin
AdministrationTomcat's administration web application is no longer installed by default. Download and install the "admin" package to use it.
添加 Tomcat Administration Username :
D:\Program Files\Apache Software Foundation\apache-tomcat-5.5.28 \conf\tomcat-users.xml
Xml代碼添加 Tomcat Administration Application Configuration
D:\Program Files\Apache Software Foundation\apache-tomcat-5.5.28\conf\Catalina\localhost\admin.xml
Xml代碼?
?
添加 Tomcat Administration Application
http://labs.xiaonei.com/apache-mirror/tomcat/tomcat-5/v5.5.28/bin/apache-tomcat-5.5.28-admin.zip
D:\Program Files\Apache Software Foundation\apache-tomcat-5.5.28\server\webapps\admin
Tomcat6 配置 Tomcat?Manager
http://localhost:8080/manager
401 Unauthorized
You are not authorized to view this page. If you have not changed any configuration files, please examine the file conf/tomcat-users.xml in your installation. That file will contain the credentials to let you use this webapp.
You will need to add manager role to the config file listed above. For example:
<role rolename="manager"/> <user username="tomcat" password="s3cret" roles="manager"/>
For more information - please see the Manager App HOW-TO .
修改文件:D:\Program Files\apache-tomcat-6.0.20\conf\tomcat-users.xml
Tomcat 7 添加配置web管理控制臺 ,注意下載版本32/64, 這個也適用于apache-tomcat-6.0.32。
http://hi.baidu.com/everything%5Fis%5Ftruth/blog/item/cc115910616ecad5a6ef3f07.html
修改文件 D:\soft\apache-tomcat-7.0.22\conf\ tomcat-users.xml
Java代碼Tomcat5 外引項目配置
文件:
D:\tomcat5\conf\Catalina\localhost\workorder .xml
內容:
< Context ? path = "/workorder " ? docBase = "D:\workspace\order\WebRoot" ? reloadable = "true"/ >
路徑:http://localhost:8585/workorder
Tomcat 5 查看并發訪問量
http://localhost:8585/manager/status/
http://localhost:8585/manager/status/all
http://192.168.157.87:8080/manager/status?XML=true
http8585
Max threads: 150 Min spare threads: 0 Max spare threads: 0 Current thread count: 3 Current thread busy: 1 Keeped alive sockets count: 0
Max processing time: 265 ms Processing time: 0.451 s Request count: 4 Error count: 0 Bytes received: 0.00 MB Bytes sent: 0.06 MB
Tomcat 啟動分析、啟動腳本、類載入器
啟動分析 :http://docs.huihoo.com/apache/tomcat/heavyz/01-startup.html
啟動腳本:http://docs.huihoo.com/apache/tomcat/heavyz/02-catalina.sh .html
類載入器:http://docs.huihoo.com/apache/tomcat/heavyz/03-classloader.html
Tomcat 6 安裝成Windows服務
http://guyongpeng.iteye.com/blog/176914
安裝tomcat服務
D:\Program Files\apache-tomcat-6.0.20\bin>service.bat install
Installing the service 'Tomcat6' ...
Using CATALINA_HOME:??? D:\Program Files\apache-tomcat-6.0.20
Using CATALINA_BASE:??? D:\Program Files\apache-tomcat-6.0.20
Using JAVA_HOME:??????? D:\Program Files\jdk1.6.0_16
Using JVM:????????????? D:\Program Files\jdk1.6.0_16\jre\bin\server\jvm.dll
The service 'Tomcat6' has been installed.
?
D:\Program Files\apache-tomcat-6.0.20\bin>net start Tomcat6
Apache Tomcat 6 服務正在啟動 ..
Apache Tomcat 6 服務已經啟動成功。
或
D:\Program Files\apache-tomcat-6.0.20\bin>service.bat install lindows
Installing the service 'lindows' ...
Using CATALINA_HOME:??? D:\Program Files\apache-tomcat-6.0.20
Using CATALINA_BASE:??? D:\Program Files\apache-tomcat-6.0.20
Using JAVA_HOME:??????? D:\Program Files\jdk1.6.0_16
Using JVM:????????????? D:\Program Files\jdk1.6.0_16\jre\bin\server\jvm.dll
The service 'lindows' has been installed.
D:\Program Files\apache-tomcat-6.0.20\bin>net start lindows
Apache Tomcat lindows 服務正在啟動 .
Apache Tomcat lindows 服務已經啟動成功。
卸載tomcat服務
D:\Program Files\apache-tomcat-6.0.20\bin>service.bat remove
或
D:\Program Files\apache-tomcat-6.0.20\bin>service.bat remove tomcat6
一般性的,若需要將通用的java應用添加為windows服務,可以使用wrapper工具
Tomcat ?Cluster?服務器集群
http://blog.chinaunix.net/u1/34716/showart_276614.html
http://server.chinabyte.com/392/2632892.shtml
http://albertsong.iteye.com/blog/271235
apache跟tomcat做集群session不同步問題
http://www.iteye.com/topic/21449
@robbin
1、tomcat實例要在response的時候標示自己,通過server.xml里面的jvmRoute參數
2、apache要從request里面拿出來route信息,從哪個HEAD里面拿?通過stickysession參數來指定
3、apache怎么轉發?通過route參數來指定。
最后想提醒一點:apache2.2的load balance的session sticky性能并不好,因為他這是在七層協議級別進行請求的分發。我測試的結果表明,并不很穩定。 對于tomcat群集來說,最好就是SNA(Share Nothing Architecture),
應用程序壓根就不用session,這樣才能無限擴展。
@codeutil
mod_jk這個早就該淘汰了, 用modajp
結合Apache和Tomcat實現集群和負載均衡
http://hqjiang.iteye.com/blog/261107
本文基本參考自?輕松實現Apache,Tomcat集群和負載均衡 ? ,經由實操經歷記錄而成,碰到些出入,以及個別地方依據個人的習慣,所以在一定程度上未能保持原文的完整性,還望原著者海涵。
因原文中有較多的貼圖,如若各位讀者一時不想親自動手而直想看到配置效果,可查看原文。
一:軟件環境 ?
?? 1. Apache: apache 2.0.55 (由http://httpd.apache.org/ ? 進入下載)(點擊下載apache 2.0.55 ? )
?? 2. Tomcat: Tomcat 5.5.25 (由http://tomcat.apache.org/ ? 進入下載)(點擊下載Tomcat 5.5.25 zip版 ? )
?? 3. mod_jk: 在頁面?http://tomcat.apache.org/ ? ?? Download 標題下找到 Tomcat Connectors 鏈接進入(?點擊下載mod_jk-apache-2.0.55.so ? ),看起來像是個Unix/Linux下的動態庫,實際應是個Win32 的 DLL 動態庫,大概是為保持不同平臺配置的一致性,才用了這個擴展名。
二:負載均衡
三:配置集群
nginx+tomcat集群負載均衡(實現session復制)
http://blog.chinaunix.net/u2/83793/showart_1354266.html
參考鏈接:
Linux操作系統下配置Tomcat多個實例解析
http://linux.chinaitlab.com/administer/747294.html
運行多個tomcat實例兩法
http://blog.csdn.net/hansoft/archive/2006/04/01/647060.aspx
apache下多個tomcat實例的實現
http://blog.chinaunix.net/u/2914/showart_1162420.html
Apache+tomcat虛擬主機多實例的配置
http://hi.baidu.com/xerik/blog/item/ab69b1513a44ea8e8d54304b.html
Tomcat 6 數據源與連接池配置
JNDI數據源的使用
http://weixuezheng1986-163-com.iteye.com/blog/561305
http://www.blogjava.net/ec2008/archive/2008/07/19/216063.html
project:test
Driver path:
D:\workspace\test\WebRoot\WEB-INF\lib\ojdbc14.10g.jar
Datasource config
D:\tomcat6.0\conf\server.xml
<GlobalNamingResources>
<!-- 其中將數據源參數配置在tomcat全局連接池中-->
? <Resource
??? name="jdbc/oracle "
??? type="javax.sql.DataSource"
??? maxActive="4"
??? maxIdle="2"
??? username="scott"
??? maxWait="5000"
??? driverClassName="oracle.jdbc.driver.OracleDriver"
??? validationQuery="select 1 from dual"
??? password="tiger"
??? url="jdbc:oracle:thin:@localhost:1521:orcl"/>
</GlobalNamingResources>
JNDI config
D:\workspace\test\WebRoot\WEB-INF\web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee "
?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation="http://java.sun.com/xml/ns/javaee ?? http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd ">
?<!--?其中加入應用JNDI配置 -->
?<resource-ref>
? <description>DB?Connection </description>
?? <!-- JNDI 命名-->
? <res-ref-name>jdbc/oracle </res-ref-name>
? <res-type>javax.sql.DataSource</res-type>
? <res-auth>Application </res-auth>
?</resource-ref>
或
?<resource-ref>
? <description>DB?Connection </description>
? <res-ref-name>jdbc/oracle </res-ref-name>
? <res-type>javax.sql.DataSource</res-type>
? <res-auth>Container </res-auth>
?</resource-ref>
</web-app>
Tomcat 6 數據源與連接池配置 方法二
project:test
Driver path:
D:\workspace\test\WebRoot\WEB-INF\lib\ojdbc14.10g.jar
Datasource config
D:\tomcat6.0\conf\Catalina\localhost\test.xml
或
D:\tomcat6.0\conf \context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/test " docBase="D:\workspace\test\WebRoot " reloadable="true">
<!-- 其中將數據源參數配置在tomcat局部連接池中-->
??<Resource name="jdbc/oracle"
????? type="javax.sql.DataSource"
????? username="scott"
????? password="tiger"
????? driverClassName="oracle.jdbc.OracleDriver"
???? ?validationQuery="select 1 from dual"
????? maxIdle="2"
????? maxWait="5000"
????? url="jdbc:oracle:thin:@localhost:1521:orcl"
????? maxActive="4"/>
</Context>
page test ok
D:\workspace\test\WebRoot\index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
?String path = request.getContextPath();
?String basePath = request.getScheme() + "://"
???+ request.getServerName() + ":" + request.getServerPort()
???+ path + "/";
%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page import="javax.sql.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
?<head>
??<base href="<%=basePath%>">
??<title>tomcat datasource test</title>
??<meta http-equiv="pragma" content="no-cache">
??<meta http-equiv="cache-control" content="no-cache">
??<meta http-equiv="expires" content="0">
??<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
??<meta http-equiv="description" content="This is my page">
??<!--
?<link rel="stylesheet" type="text/css" href="styles.css">
?-->
?</head>
?<body>
??<%
???Context initContext = new InitialContext();
???//java:/comp/env 或? java:/comp/env/ 固定寫法
???Context envContext = (Context) initContext
?????.lookup("java:/comp/env/");
???DataSource ds = (DataSource) envContext.lookup("jdbc/oracle");
???//方法二
???//DataSource ds = (DataSource) initContext.lookup("java:/comp/env/jdbc/oracle");
???Connection conn = ds.getConnection();
???Statement stmt = conn.createStatement();
???ResultSet rs = stmt.executeQuery("select * from dept");
???out.println("結果集是否為空:" + (rs == null) + "<p>");
???while (rs.next()) {
????String deptno = rs.getString(1);
????String dname = rs.getString(2);
????String loc = rs.getString(3);
????out.println("\t部門編號:" + deptno + "\t部門名稱:" + dname + "??? 地點:"
??????+ "\t" + loc + "<p>");
???}
???out.println("finally");
???try {
????if (rs != null) {
?????rs.close();
????}
????if (stmt != null) {
?????stmt.close();
????}
????if (conn != null) {
?????conn.close();
????}
???} catch (SQLException e2) {
????e2.printStackTrace();
???}
??%>
?</body>
</html>
tomcat 虛擬主機配置
http://absolute007.iteye.com/blog/175902
第一步、
在tomcat/conf/server.xml中添加
? <Host name="jsp " debug="0" appBase="E:\My Documents\myeclipse_workspace">
????????????? <Context path="" docBase="." debug="0"/>
?????? </Host>
第二步、
對于windows XP:
\WINDOWS\system32\drivers\etc\
中找到hosts這個文件,此文件沒有擴展名,可以手工創建。后面添加
127.0.0.1?????? localhost
127.0.0.1??????jsp
?第三步:
瀏覽器中輸入
http://jsp:8008/jspsqltest/WebRoot/test.jsp
一切完成
tomcat5 優化配置
http://liliugen.iteye.com/blog/265422
http://liliugen.iteye.com/blog/265506
http://japi.iteye.com/blog/261586
java.lang.OutOfMemoryError: PermGen space
tomcat 最大連接數配置
http://maqianli.iteye.com/blog/298619
在server.xml中有配置的。 ??
<Connector ? port="8080" ??
? ? maxThreads="150" ??
? ? minSpareThreads="25" ??
? ? maxSpareThreads="75" ??
? ? acceptCount="100" ??
? ? /> ??
maxThreads="150" ????? 表示最多同時處理150個連接 ??
minSpareThreads="25" ? 表示即使沒有人使用也開這么多空線程等待 ??
maxSpareThreads="75" ? 表示如果最多可以空75個線程,例如某時刻有80人訪問,之后沒有人訪問了,則tomcat不會保留80個空線程,而是關閉5個空的。 ??
??
acceptCount="100" ???? 當同時連接的人數達到maxThreads時,還可以接收排隊的連接,超過這個連接的則直接返回拒絕連
接。
?
Tomcat集群的三種負載均衡方式優缺點對照。
http://wangdei.iteye.com/blog/205947 1.使用DNS輪詢. 2.使用Apache R-proxy方式。 3.使用Apache mod_jk方式. DNS輪詢的缺點是,當集群中某臺服務器停止之后,用戶由于dns緩存的緣故,便無法訪問服務, 必須等到dns解析更新,或者這臺服務器重新啟動。 還有就是必須把集群中的所有服務端口暴露給外界,沒有用apache做前置代理的方式安全, 并且占用大量公網IP地址,而且tomcat還要負責處理靜態網頁資源,影響效率。 優點是集群配置最簡單,dns設置也非常簡單。 R-proxy的缺點是,當其中一臺tomcat停止運行的時候,apache仍然會轉發請求過去,導致502網關錯誤。 但是只要服務器再啟動就不存在這個問題。 mod_jk方式的優點是,Apache 會自動檢測到停止掉的tomcat,然后不再發請求過去。 缺點就是,當停止掉的tomcat服務器再次啟動的時候,Apache檢測不到,仍然不會轉發請求過去。 R-proxy和mod_jk的共同優點是.可以只將Apache置于公網,節省公網IP地址資源。 可以通過設置來實現Apache專門負責處理靜態網頁,讓Tomcat專門負責處理jsp和servlet等動態請求。 共同缺點是:如果前置Apache代理服務器停止運行,所有集群服務將無法對外提供。 R-proxy和mod_jk對靜態頁面請求的處理,都可以通設置來選取一個盡可能優化的效果。 這三種方式對實現最佳負載均衡都有一定不足,mod_jk相對好些,可以通過設置lbfactor參數來分配請求任務。 所有這些在實際使用中都應該根據具體情況來選擇。本地查看遠程端口8080是否開放
C:\Documents and Settings\Lindows>telnet 192.168.118.168 8000
tomcat 8080 端口沖突解決 方法一
http://inshect.iteye.com/blog/343057
dos 輸入 ,并查看沖突端口號對應的PID(系統進程號)
C:\Documents and Settings\Lindows>netstat -help
C:\Documents and Settings\Lindows>netstat -b
C:\Documents and Settings\Lindows>netstat -ano > c:\netstat.txt
看看占用0.0.0:80端口的PID是多少
在“任務管理器”中查找對應PID的程序。
如果任務管理器的進程頁中看不到PID欄,
則在任務管理器的菜單〖查看〗〖選擇列〗中選擇一下。刪掉PID對應的程序即可。
tomcat 8080 端口沖突解決 方法二
windows 命令行下 簡單好用的查看端口占用情況的方法
http://freeman983.iteye.com/blog/349971
在windows命令行窗口下執行:
C:\>netstat -ano | findstr "8080"
或
C:\>netstat -ano | findstr 8080
TCP??? 127.0.0.1:4444???????? 0.0.0.0:0????????????? LISTENING?????? 2434
由上面得知,端口被進程號為2434的進程占用,繼續執行下面命令:
C:\>tasklist | findstr "2434"
或
C:\>tasklist | findstr 2434
javaw.exe???????????????????? 2434 Console???????????????? 0???? 16,064 K
c:\>taskkill? /f /im javaw.exe
Apache HTTP Server 與 Tomcat 的三種連接方式介紹
劉 冬 (javayou@gmail.com ), 開發工程師, 2007 年 1 月 15 日
http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/index.html
Tomcat SSL OpenSSL 443
終于搞定了Windows下Tomcat Web服務器的SSL配置
http://albertsong.iteye.com/blog/198344
http://www.myssl.cn/guide/install_openssl.asp
?
Tomcat6配置使用SSL雙向認證 ?
http://www.openssl.cn/
http://www.openssl.org/
http://baike.baidu.com/view/300712.htm
http://tech.techweb.com.cn/thread-226423-1-2.html
使用OpenSSL API進行安全編程
http://www.ibm.com/developerworks/cn/linux/l-openssl.html
?
openssl生成pem建立CA
http://ideage.iteye.com/blog/356915
文章一:http://blog.chinaunix.net/u/11234/showart_290705.html
文章二:http://blog.chinaunix.net/u/11234/showart_291316.html
openssl簡明使用手冊
http://firefly.iteye.com/blog/177544
簡要介紹了使用openssl來生成CA證書、申請證書、頒發證書以及撤銷證書的過程?
1. 首先建立CA密鑰:?
openssl genrsa -des3 -out ca.key 1024 (創建密鑰)?
chmod 400 ca.key (修改權限為僅root能訪問)?
openssl rsa -noout -text -in ca.key (查看創建的證書)?
2. 利用CA密鑰自簽署CA證書:?
openssl req -config openssl.cnf -new -x509 -days 3650 -key ca.key -out ca.crt?
chmod 400 ca.crt (修改權限為僅root能訪問)?
openssl x509 -noout -text -in ca.crt (查看創建的證書)?
3. 創建服務器證書簽署申請:?
openssl genrsa -des3 -out client.key 1024?
chmod 400 client.key (修改權限為僅root能訪問)?
openssl rsa -noout -text -in client.key (查看創建的證書)?
4. 利用證書簽署申請生成請求:?
openssl req -config openssl_client.cnf -new -key client.key -out client.csr?
openssl req -noout -text -in client.csr (查看創建的請求)?
5.進行證書簽署:?
這時候需要先設置一下openssl的配置文件。?
modify openssl.cnf并根據這個配置文件創建相應的目錄和文件。?
在創建了serial文件之后,還需要添加當前的八進制的serial number,如:01?
然后執行:?
openssl ca -config openssl_client.cnf -keyfile ca.key -cert ca.crt -in client.csr -out client.pem -days 1095?
這個certificate是BASE64形式的,要轉成PKCS12才能裝到IE,/NETSCAPE上.所以還要:?
openssl pkcs12 -export -in client.pem -inkey client.key -out clinet.pfx?
6.證書撤銷:?
openssl ca -keyfile ca.key -cert ca.crt -revoke client.pem?
這時數據庫被更新證書被標記上撤銷的標志,需要生成新的證書撤銷列表:?
openssl ca -gencrl -keyfile ca.key -cert ca.crt -out crl/test.crl?
查看證書撤銷列表:?
openssl crl -noout -text -in crl/test.crl?
證書撤銷列表文件要在WEB站點上可以使用,必須將crldays或crlhours和crlexts加到證書中:?
openssl ca -gencrl -config /etc/openssl.cnf -crldays 7 -crlexts crl_ext -out crl/sopac-ca.crl?
當虛擬目錄不是在80端口且打開ssl時出錯 ssl_error_rx_record_too_long?
【錯誤】如果網站URL是:http://ip:port/ 時,如果再在網站上啟用ssl,在瀏覽器上訪問:https://ip:port/ 將會收到如下錯誤:SSL 接收到一個超出最大準許長度的記錄。錯誤碼: ssl_error_rx_record_too_long
【原因】:
ssl協議默認是在web server的443端口監聽,所以,訪問ssl會產生如下形式的訪問:http://ip:443/ 這樣將與http://ip:port/ 里的port沖突。
【所以】:對https訪問,web server會自己定位到導用的了ssl的網站(啟用了ssql ,此網上就自動在443上監聽)上。
【解決 】 :對https://ip:port/ 的訪問可以省略port,如:對https://ip/
?
http://msn.ynet.com/view.jsp?oid=48723368+
javax.servlet.ServletException: Node with number 0 does not exist.
http://msn.sports.ynet.com/2008/view.jsp?oid=42362690
javax.servlet.ServletException: Node with number 42362690 does not exist.
?
【問題】
2009-3-12 15:06:31 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
嚴重: An incompatible version 1.1.1 of the Apache Tomcat Native library is installed, while Tomcat requires version 1.1.3
2009-3-12 15:06:31 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: An older version 1.1.1 of the Apache Tomcat Native library is installed, while Tomcat recommends version greater than 1.1.4
2009-3-12 15:06:31 org.apache.coyote.http11.Http11AprProtocol init
【解決 】
http://tomcat.heanet.ie/native/1.1.8/binaries/win32/
http://topic.csdn.net/u/20080605/14/68376d57-bb1b-4b45-a489-13aa722f2e67.html
下載 http://tomcat.heanet.ie/native/1.1.8/binaries/win32/tcnative-1.dll? 目前版本1.1.8
1、把文件放入C:\WINDOWS\system32里。或D:\tomcat5.5\bin下,我就是這樣解決的。
2、把它放在環境變量path中所指向的jdk的bin的目錄下,例如,放在C: Javajdk1.5.0_09bin目錄下?
Apache Tomcat Log
tomcat catalina.out日志切割每天生成一個文件
http://www.sbear.cn/archives/367
tomcat的catalina.out一直增長,太大了會造成tomcat異常,
需要對其日志進行切割每天生成一個文件,并且刪除7天前的文件。
#!/bin/bash cd `dirname $0` d=`date +%Y%m%d` d7=`date -d'7 day ago' +%Y%m%d`? cd ../logs/ cp catalina.out catalina.out.$ozvdkddzhkzd echo "" > catalina.out rm -rf catalina.out.${d7}
放到tomcat的bin目錄中,然后crontab每天執行
Tomcat APR (Apache Portable Runtime)
ref
http://redalx.iteye.com/blog/162246
http://blog.csdn.net/tingya/archive/2006/04/15/664304.aspx
apr說白了就是如何在Tomcat中使用JNI的方式來讀取文件以及進行網絡傳輸, ?提高tomcat ?的IO效率。
apr可以大大提升Tomcat對靜態文件的處理性能,同時如果你使用了HTTPS方式傳輸的話,也可以提升SSL的處理性能。
doc
http://apr ?.apache.org/
http://tomcat.apache.org/tomcat-5.5-doc/apr.html
http://tomcat ?.apache.org/tomcat ?-6.0-doc/apr ?.html
down
http://tomcat.heanet.ie/native/
http://tomcat.heanet.ie/native/1.1.9/binaries/win32/tcnative-1.dll
setup for Windows
直接下載編譯好的二進制版本的dll庫文件
http://tomcat.heanet.ie/native/1.1.9/binaries/win32/tcnative-1.dll來使Tomcat啟用APR ?
setup for linux
在Linux下,可以直接解壓和安裝bin目錄下的tomcat_native.tar.gz文件,編譯之前要確保apr庫已經安裝,安裝的方式:
# ./configure --with-apr=/usr/local/apr
# make
# make install
安裝成功后還需要對tomcat設置環境變量,方法是在catalina.sh文件中增加一行:
CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"
怎么才能判斷Tomcat是否已經啟用了APR庫呢?方法是通過看Tomcat的啟動日志
如果沒有啟用APR,則啟動日志一般有這么一條:
org.apache.coyote.http11.Http11Protocol start
如果啟用了APR,則這條日志就會變成:
?
使用了apr ?之后,如果使用了https,https的配置也需要作改變。需要用到openssl來進行證書文件的生成。?
<!-- ssl for?apr ?-->?
<Connector port="8443" maxHttpHeaderSize="8192"?
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"?
enableLookups="false" disableUploadTimeout="true"?
acceptCount="100" scheme="https" secure="true"?
clientAuth="false"?
SSLEngine="on"?
SSLCertificateFile="..\conf\ca\server.crt"?
SSLCertificateKeyFile="..\conf\ca\server.key" />?
linux下編譯?
cd apache-tomcat ?-5.5.14/bin/tomcat ?-native-1.1.1/jni/native/?
./configure --with-apr ?=/usr/bin/apr ?-1-config --with-java-home=/usr/java/jdk1.5.0_06/?
make?
make install?
bin/catalina.sh?
加上?
CATALINA_OPTS="-Djava.library.path=/usr/local/apr ?/lib"
?
Apache Tomcat/5.5.23? Apache/2.0.61 (Unix) DAV/2 PHP/5.2.4 Server at msn.ent.ynet.com Port 80 http://msn.ent.ynet.com/photo.jsp?eid=57080047&bid=20331162&ofs=5&max=2 http://taobao.ent.ynet.com/photo.jsp?eid=49540108 502 Proxy Error Apache/2.0.61 (Unix) DAV/2 Server at taobao.ent.ynet.com Port 80 南京公安局 exception http://202.102.89.2/njga/addin/register/mainregister.jsp
HTTP Status 500 -
type ?Exception report
message
description ?The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Request[/persionRegister] does not contain handler parameter named 'method'. This may be caused by whitespace in the label text.org.apache.struts.actions.DispatchAction.unspecified(DispatchAction.java:215)org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:249)org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)javax.servlet.http.HttpServlet.service(HttpServlet.java:690)javax.servlet.http.HttpServlet.service(HttpServlet.java:803)com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:177)com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:78)cn.myapps.base.web.filter.PersistenceFilter.doFilter(PersistenceFilter.java:29)cn.myapps.base.web.filter.SecurityFilter.doFilter(SecurityFilter.java:109)note ?The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.
Apache Tomcat/6.0.14
http://photograph.baihe.com/photograph/uploadFile.do;jsessionid=E6483BF8E57118CF4E21CF7F8C6DD18C
Apache Tomcat/5.5
javax.servlet.ServletException: Processing of multipart/form-data request failed. Read timed out org.apache.commons.fileupload.FileUploadException: Processing of multipart/form-data request failed. Read timed otomcat 添加gzip壓縮
http://bsb654321.iteye.com/blog/649053
?
在文件tomcat/conf/server.xml 中添加紅色部分的配置即可打開使用壓縮傳輸功能:????? <Connector port="8080" address="${jboss.bind.address}"
???????? maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"
???????? emptySessionPath="true"
???????? enableLookups="false" redirectPort="8443" acceptCount="100"
???????? connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"
????????????? compression="on"???
???????? compressionMinSize="2048"???
???????? noCompressionUserAgents="gozilla, traviata"???
???????? compressableMimeType="application/java-archive,application/octet-stream,text/vnd.sun.j2me.app-descriptor,application/octet-stream, application/x-msdownload, p_w_picpath/png, p_w_picpath/gif, text/plain " />
compression 開關
noCompressionUserAgents 那種瀏覽器不使用壓縮功能
compressionMinSize????? 啟用壓縮的輸出內容大小,這里面默認為2KB
compressableMimeType??? 那些文件需要壓縮 mimetype
在tomcat/webapps/ 工程/WEB-INF/web.xml 中增加下面的配置 Xml代碼 ?
LambdaProbe監控Tomcat 內存參數解析
http://bbs.51testing.com/viewthread.php?tid=165106 tomcat monitor? JavaMelody / LambdaProbe http://jackyrong.iteye.com/blog/692004 之前介紹過一個監視應用的好工具JavaMelody,功能十分齊全,這次介紹個稍微小點的,專門為TOMCAT 而設計的。下面講解其用法:
1 下載:
http://www.lambdaprobe.org/downloads/1.7/probe.1.7b.zip
2 解壓縮后,把probe.war放到TOMCAT的webapps下,設置server.xml
的context
3 設置用戶如下,在tomcat_user.xml中
?? vi /usr/local/tomcat/conf//tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
??????? <role rolename="manager"/>
??????? <role rolename="standard"/>
??????? <role rolename="tomcat"/>
??????? <role rolename="admin"/>
??????? <role rolename="role1"/>
??????? <user username="tomcat" password="tomcat" roles="tomcat"/>
??????? <user username="both" password="tomcat" roles="tomcat,role1"/>
??????? <user username="probe" password="probe" roles="admin,manager"/>
??????? <user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>
4 設置環境變量,獲取服務器狀態
# vi /etc/profile
JAVA_OPTS=-Dcom.sun.management.jmxremote
export JAVA_OPTS
5 重啟動服務器
6 輸入http://localhost/probe/,輸入用戶名和密碼
7 即可進入,這里比較精彩的是對內存的監視,動態顯示了JVM的內存圖表 http://jackyrong.iteye.com/blog/731308 今天在JAVAEYE首頁看到這個工具的推薦,看了下,不錯:
JavaMelody能夠在QA和實際運行生產環境監測Java或Java EE應用程序服務器。并以圖表的形式顯示:Java內存和Java CPU使用情況,用戶Session數量,JDBC連接數,和http請求、sql請求、jsp頁面與業務接口方法(EJB3、Spring、 Guice)的執行數量,平均執行時間,錯誤百分比等。圖表可以按天,周,月,年或自定義時間段查看。
使用配置如下:
1、到http://code.google.com/p/javamelody/downloads/list下載zip的壓縮包
2、解壓縮并將javamelody.war復制到Tomcat發布目錄下
3、在被監控項目web.xml中加入如下代碼
<filter>???
??????? <filter-name>monitoring</filter-name>???
??????? <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>???
</filter>???
<filter-mapping>???
??????? <filter-name>monitoring</filter-name>???
??????? <url-pattern>/*</url-pattern>???
</filter-mapping>???
<listener>???
??????? <listener-class>net.bull.javamelody.SessionListener</listener-class>???
</listener>?
于是就可以使用了,更詳細的可以參考這里:
http://liuyes.iteye.com/blog/691752
linux上tomcat6配置SSL雙向認證實現https安全訪問
http://ml365.iteye.com/blog/850001 1 使用工具:apache-tomcat-6.0.29
jdk1.6.23
2 過程描述:
?????? 2.1 在我方的服務器上,通過jdk工具keytool生成密鑰對以及個人證書(其實就是認證申請文件.csr)。結果在我方生成兩個文件,分別是:tian.cer(導出的個人證書),tian.csr(輸出的認證簽名申請文件)。
?????? 2.2 將生成的tian.csr發送給個CA方,他們會根據這個生成以下文件返回給我方:
Tian.crt(認證后的我方服務器端的數字證書),Ct2.crt(電信根證書),test.p12(帶私鑰的個人證書)。以下是解釋:
根證書(ct2.crt)用于信任網站;個人證書(test.p12)用于向網站表明自己的身份。雙向。tomcat安裝ct2.crt、tian.crt,這個是向客戶端證明tomcat的身份;
客戶端安裝ct2.crt、test.p12,這個是向tomcat服務器證明自己的身份。tian.crt是我方服務器的認證證書;ct2.crt是根 證書;test.p12是客戶端個人證書。tian.crt是ct2.crt根證書認證的;test.p12也是ct2.crt根證書做認證的。
2.3 把CA方發過來的ct2.crt和tian.crt加入到我方tomcat,讓服務器信任證書。
2.4 配置tomcat的server.xml配置文件,配置好https。
2.5 每個訪問的sp(瀏覽器)先把ct2.crt放在瀏覽器的可信任根目錄里,然后安裝導入個人證書(test.p12)之后。訪問我方地址https://IP:8443即可。
3 操作過程:
3.1? 生成密鑰對以及個人證書
命令:$ keytool -genkey -alias tian -keyalg RSA
3.2導出個人證書
命令:keytool -export -alias tian -file tian.cer
信息:輸入keystore密碼:
保存在文件中的認證 <tian.cer>
3.3 輸出認證簽名申請文件(.csr)
命令:keytool -certreq -file tian.csr -alias tian
信息:輸入keystore密碼:
3. 4 先導入根證書
命令:keytool -import -v -trustcacerts -file ct2.crt -alias ct2_root
信任這個認證? [否]:? Y
認證已添加至keystore中
[正在存儲 /home/tomcat/.keystore]
3. 5 導入CA認證過的證書(tian.crt)
命令:keytool -import -v -file tian.crt -alias tian
信息:
輸入keystore密碼:
認證回復已安裝在 keystore中
[正在存儲 /home/tomcat/.keystore]
3.6配置tomcat:
??? <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
?????????????? maxThreads="150" scheme="https" secure="true"
?????????? keystoreFile="/home/tomcat/.keystore"
????????? keystorePass="password"
??????? truststoreFile="/home/tomcat/.keystore"
?????? truststorePass="password"
???? clientAuth="true" sslProtocol="TLS" />
3.7 客服端安裝個人證書和根證書
3.8 訪問https://IP:8443出現提示你提交個人證書提示框。成功雙向認證!
tomcat的https configuration
http://haoningabc.iteye.com/blog/906890
轉載http://www.chinaunix.net/jh/13/456376.html
http://andyj.iteye.com/blog/176470
keytool -genkey -alias tomcat -keyalg RSA -keystore test.keystore
生成awcloud.keystore,注意:第一個用戶名為本地計算機名稱,不能為ip,國家寫CN
keytool -list -keystore keystore
查看
keytool -certreq -keyalg RSA -alias tomcat -file test.csr -keystore test.keystore
生成test.csr
http://www.verisign.com/server2/trial/faq/index.html
Free 30-Day SSL Trial
VeriSign? SSL Test Certificate 點TRY
輸入郵箱,continue
Server platform:選apache
Paste Certificate Signing Request (CSR)輸入test.csr的內容
收郵件后,點連接進入,保存test.cer
keytool -import -alias root -keystore test.keystore -trustcacerts -file root.cer
keytool -
Tomcat的增加/查看jvm虛擬內存
http://gqsunrise.iteye.com/blog/1176768
Win 操作系統? 第一種方法:? 修改 tomcat/bin/catalina.bat 文件? 增加一行 set JAVA_OPTS=-Xms256m -Xmx1024m
Linux 操作系統? 修改 tomcat/bin/catalina.sh 文件? 增加? JAVA_OPTS="-Xms256m -Xmx1024m"
http://localhost:8080/server-status 選擇“Server Status”,便可以看到JVM的占用情況
end
轉載于:https://blog.51cto.com/lya041/755214
總結
以上是生活随笔為你收集整理的webServer tomcat5/tomcat6/tomcat7诠释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL安装错误:/usr/local
- 下一篇: Oracle常用语句:分页查询语句的写法