㈠ tomcat為什麼老是宕機,ajp協議有什麼需要注意的地方
AJP是定向包協議。因為性能原因,使用二進制格式來傳輸可讀性文本。WEB伺服器通過TCP連接和SERVLET容器連接。為了減少進程生成socket的花費,WEB伺服器和SERVLET容器之間嘗試保持持久性的TCP連接,對多個請求/回復循環重用一個連接。一旦連接分配給一個特定的請求,在請求處理循環結束之前不會在分配。換句話說,在連接上,請求不是多元的。這個是連接兩端的編碼變得容易,雖然這導致在一時刻會有很多連接。
㈡ tomcat AJP 是什麼東西
AJP(Apache JServ Protocol)是定向包協議。因為性能原因,使用二進制格式來傳輸可讀性文本。WEB伺服器通過TCP連接和SERVLET容器連接。
由於tomcat的html和圖片解析功能相對其他伺服器如apche等較弱,所以,一般都是集成起來使用,只有jsp和servlet服務交由tomcat處理,而tomcat和其他伺服器的集成,就是通過ajp協議來完成的。
為了減少進程生成socket的花費,WEB伺服器和SERVLET容器之間嘗試保持持久性的TCP連接,對多個請求/回復循環重用一個連接。一旦連接分配給一個特定的請求,在請求處理循環結束之前不會再分配。
換句話說,在連接上,請求不是多元的。這個使連接兩端的編碼變得容易,雖然這導致在一時刻會有很多連接。
(2)Ajp證書擴展閱讀:
WEB伺服器連接到SERVLET容器的狀態類型:
1、空閑
這個連接上沒有處理的請求。
2、已分派
連接正在處理特定的請求。
一旦一個連接被分配給一個特定的請求,在連接上發送的基本請求信息是高度壓縮的。在這點,SERVLET容器大概准備開始處理請求,當它處理的時候,它能發回下面的信息給WEB伺服器:
3、SEND_HEADERS
發送一組頭到瀏覽器。
4、SEND_BODY_CHUNK
發送一塊主體數據到瀏覽器。
5、GET_BODY_CHUNK
從請求獲得下一個數據如果還沒有全部傳輸完,如果請求內容的包長度非常大或者長度不確定,這是非常必要的。例如上載文件。注意這和HTTP的塊傳輸沒有關聯。
6、END_RESPONSE
結束請求處理循環。
參考資料來源:
網路—ajp
㈢ ajp是什麼在網路上如何應用
AJP是定向包協議。因為性能原因,使用二進制格式來傳輸可讀性文本。WEB伺服器通過TCP連接和SERVLET容器連接。為了減少進程生成socket的花費,WEB伺服器和SERVLET容器之間嘗試保持持久性的TCP連接,對多個請求/回復循環重用一個連接。一旦連接分配給一個特定的請求,在請求處理循環結束之前不會在分配。換句話說,在連接上,請求不是多元的。這個是連接兩端的編碼變得容易,雖然這導致在一時刻會有很多連接。 一旦WEB伺服器打開了一個到SERVLET容器的連接,連接處於下面的狀態: ◆ 空閑 這個連接上沒有處理的請求。 ◆ 已分派 連接正在處理特定的請求。 一旦一個連接被分配給一個特定的請求,在連接上發送的基本請求信息是高度壓縮的。在這點,SERVLET容器大概准備開始處理請求,當它處理的時候,它能發回下面的信息給WEB伺服器: ◆ SEND_HEADERS 發送一組頭到瀏覽器。 ◆ SEND_BODY_CHUNK 發送一塊主體數據到瀏覽器。 ◆ GET_BODY_CHUNK 從請求獲得下一個數據如果還沒有全部傳輸完,如果請求內容的包長度非常大或者長度不確定,這是非常必要的。例如上載文件。注意這和HTTP的塊傳輸沒有關聯。 ◆ END_RESPONSE 結束請求處理循環
㈣ Apache Tomcat AJP協議安全限制繞過漏洞
您好,您可以下載安全補丁或者查看這個漏洞的解釋,看看是否是哪句代碼出了問題,哪個頁面出現的問題?
㈤ 如何給網站免費添加Https加密
首先沒有免費的。
1、需要准備好域名、獨立伺服器或雲伺服器,支持HTTPS加密的伺服器才可以。
2、淘寶Gworg獲取證書。
3、對應自己的伺服器環境拿到教程安裝到伺服器完成。
4、測試網站後台源碼是否正常,如果地址欄沒有出現小鎖,刪除HTTP普通協議調用數據就可以了。
㈥ 無視Https證書是不是正確的Java Http Client
無視Https證書是不是正確的Java Http Client
www.MyException.Cn 網友分享於:2013-11-10 瀏覽:5次
無視Https證書是否正確的Java Http Client
需要保證通訊的端到端安全,大家一致認為Https方式最適合,但需要評估性能代價。
採取ajp connector貌似無法直接使用httpd2進行load balance了,而且proxy模式的性能實在是讓人心寒;jk connector如果tomcat不配ssl,據說需要forward一下,還沒有搞定。
為了測試性能,寫了個可以無視Https證書是否正確都能連接的Java Http Client。以為很簡單的一段代碼,繞是邁過了兩個小門檻,才搞定的。code可以拿出來曬一曬了。
運行環境jdk1.6,不需要其它類庫。
package test;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
/**
* 無視Https證書是否正確的Java Http Client
*
* <p>
* <a href="HttpsUtil.java.html"><i>View Source</i></a>
* </p>
*
* @author <a href="mailto:[email protected]">LiYan</a>
*
* @create Sep 10, 2009 9:59:35 PM
* @version $Id$
*/
public class HttpsUtil {
/**
* 忽視證書HostName
*/
private static HostnameVerifier ignoreHostnameVerifier = new HostnameVerifier() {
public boolean verify(String s, SSLSession sslsession) {
System.out.println("WARNING: Hostname is not matched for cert.");
return true;
}
};
/**
* Ignore Certification
*/
private static TrustManager = new X509TrustManager() {
private X509Certificate[] certificates;
@Override
public void checkClientTrusted(X509Certificate certificates[],
String authType) throws CertificateException {
if (this.certificates == null) {
this.certificates = certificates;
System.out.println("init at checkClientTrusted");
}
}
@Override
public void checkServerTrusted(X509Certificate[] ax509certificate,
String s) throws CertificateException {
if (this.certificates == null) {
this.certificates = ax509certificate;
System.out.println("init at checkServerTrusted");
}
// for (int c = 0; c < certificates.length; c++) {
// X509Certificate cert = certificates[c];
// System.out.println(" Server certificate " + (c + 1) + ":");
// System.out.println(" Subject DN: " + cert.getSubjectDN());
// System.out.println(" Signature Algorithm: "
// + cert.getSigAlgName());
// System.out.println(" Valid from: " + cert.getNotBefore());
// System.out.println(" Valid until: " + cert.getNotAfter());
// System.out.println(" Issuer: " + cert.getIssuerDN());
// }
}
@Override
public X509Certificate[] getAcceptedIssuers() {
// TODO Auto-generated method stub
return null;
}
};
public static byte[] doGet(String urlString) {
ByteArrayOutputStream buffer = new ByteArrayOutputStream(512);
try {
URL url = new URL(urlString);
/*
* use ignore host name verifier
*/
HttpsURLConnection.setDefaultHostnameVerifier(ignoreHostnameVerifier);
HttpsURLConnection connection = (HttpsURLConnection) url
.openConnection();
// Prepare SSL Context
TrustManager[] tm = { };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new java.security.SecureRandom());
// 從上述SSLContext對象中得到SSLSocketFactory對象
SSLSocketFactory ssf = sslContext.getSocketFactory();
connection.setSSLSocketFactory(ssf);
InputStream reader = connection.getInputStream();
byte[] bytes = new byte[512];
int length = reader.read(bytes);
do {
buffer.write(bytes, 0, length);
length = reader.read(bytes);
} while (length > 0);
// result.setResponseData(bytes);
System.out.println(buffer.toString());
reader.close();
connection.disconnect();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
}
return buffer.toByteArray();
}
public static void main(String[] args) {
String urlString = "https://www.google.com/adsense/";
String output = new String(HttpsUtil.getMethod(urlString));
System.out.println(output);
}
}
㈦ tomcat ssl 怎麼配置pem 和key文件
下載APR依賴: APR 1.2+ development headers (libapr1-dev package)
下載OpenSSL依賴:OpenSSL 0.9.7+ development headers (libssl-dev package)
准備依賴包
解壓縮tomcat_home/bin/tomcat-native.tar.gz
進入目錄:tomcat-native-1.1.20-src/jni/native 詳細安裝見此目錄下的BUILDING文件
執行 export JAVA_HOME=/prog/java/jdk 設置
執行:./configure --with-apr=/usr/bin --with-ssl=/usr/bin
執行:make
執行:sudo make install -->安裝到/usr/local/apr/lib
執行:ln -s /usr/local/apr/lib/libtcnative-1.so $JAVA_HOME/jre/lib/amd64/
重新啟動tomcat看到:
Sep 3, 2010 9:56:17 PM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
Sep 3, 2010 9:56:18 PM org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
Sep 3, 2010 9:56:18 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: Failed to initialize the SSLEngine.
Sep 3, 2010 9:56:18 PM org.apache.coyote.http11.Http11AprProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8782
Sep 3, 2010 9:56:18 PM org.apache.coyote.ajp.AjpAprProtocol init
INFO: Initializing Coyote AJP/1.3 on ajp-8711
Sep 3, 2010 9:56:18 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 840 ms
配置SSL
非APR的SSL配置步驟
創建keystore:
jdk/bin/keytool -genkey -keystore tomcat.keystore -alias tomcat -keyalg RSA
把tomcat.keystore放入${user.home}目錄中,就是你的用戶目錄,當然你可以放入其他目錄中
修改tomcat的server.xml,增加Connector:
Xml代碼
APR環境的SSL配置(ssl不使用apr):
<Connector port="9145" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
URIEncoding="UTF-8"
keystoreFile="${user.home}/tomcat.keystore" keystorePass="cms4g-proxy-PaSsWoRd"
maxThreads="20"
/>
如果還是按照上面的#非APR的SSL配置步驟進行ssl配置,那麼需要這么做:
在Connector中配置protocol=org.apache.coyote.http11.Http11NioProtocol
<Connector port="9145" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
protocol="org.apache.coyote.http11.Http11NioProtocol"
URIEncoding="UTF-8"
keystoreFile="${user.home}/tomcat.keystore" keystorePass="cms4g-proxy-PaSsWoRd"
maxThreads="20"
/>
但啟動時會提示錯誤:Failed to initialize the SSLEngine.
Sep 3, 2010 10:49:42 PM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
Sep 3, 2010 10:49:43 PM org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
Sep 3, 2010 10:49:43 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: Failed to initialize the SSLEngine.
Sep 3, 2010 10:49:43 PM org.apache.coyote.http11.Http11AprProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8782
Sep 3, 2010 10:49:43 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 3, 2010 10:49:43 PM org.apache.coyote.http11.Http11NioProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-9145
Sep 3, 2010 10:49:43 PM org.apache.coyote.ajp.AjpAprProtocol init
INFO: Initializing Coyote AJP/1.3 on ajp-8711
Sep 3, 2010 10:49:43 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1162 ms
雖然提示信息:Failed to initialize the SSLEngine.但ssl依然可以正常運行,要抑制此信息只要修改server.xml配置apr的sslengine=off即可,如
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />
啟動信息
Sep 3, 2010 10:51:53 PM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
Sep 3, 2010 10:51:53 PM org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
Sep 3, 2010 10:51:54 PM org.apache.coyote.http11.Http11AprProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8782
Sep 3, 2010 10:51:54 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 3, 2010 10:51:54 PM org.apache.coyote.http11.Http11NioProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-9145
Sep 3, 2010 10:51:54 PM org.apache.coyote.ajp.AjpAprProtocol init
INFO: Initializing Coyote AJP/1.3 on ajp-8711
Sep 3, 2010 10:51:54 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1081 ms
㈧ ajp文件用什麼軟體打開,急用!
AutoCAD的DWG文件是一個標準的文件格式,你可以使用AUTOCAD開放,但有DWG格式文件R14,多個版本的R2000,R2004等,但通常是向下兼容的,可以打開R14,2000,2004其他ACAD2004 DWG文件類型,但反過來不能打開與創建ACAD2000 ACAD2004 DWG文件時,系統會提示您該文件是由不兼容的CAD版本創建的。
㈨ eclipse 中的 tomcat伺服器,設置中有個ports ajp/1.3 是個什麼東東
AJP是一中TCP/IP協議,具體介紹看帖子吧。http://my.oschina.net/czg/blog/142616
㈩ 跪求:windows版tomcat老是報"ajp-apr-8009-exec-7" java.lang.OutOfMemoryError: PermGen space怎麼解決
關閉tomcat服務,然後去到Tomcat/ bin目錄並運行tomcat6w.exe。在「Java」的選項卡,添加參數到「Java選項」對話框。點擊「確定」,然後重新啟動該服務。