Tomcat中的Connector配置

2021-09-01 04:48:24 字數 3376 閱讀 3266

jboss使用tomcat作為web容器,因此在jboss中對於web容器的配置也類似於在tomcat中的配置,主要就是對於server.xml檔案的編輯,在jboss 5.x中,這個檔案位於$\server\$\deploy\jbossweb.sar下,其中configure的值可以是all, default,web,standard, minimal等。下面的**展示了乙個jboss default配置下的server.xml,由於篇幅原因,將其中的注釋都已經去掉了。

xml** 收藏**

在上面的配置檔案中,server是根節點,乙個server就代表乙個servlet容器,因此在server.xml中,這個節點只能有乙個,在server節點下,可以存在乙個或者多個service節點。

乙個service節點代表了乙個或者多個connector和乙個engine,而connector和engine是在server.xml中兩個重要的配置項,connector的主要功能是接受、響應使用者請求。常用的connector有http/1.1 connector和ajp connector,http/1.1 connector主要用於處理使用者的http請求,需要注意的是雖然它名叫http/1.1 connector,但是是完全相容http/1.0協議的。ajp connector主要使用ajp協議和web connector通訊,通常用於集群中。

http/1.1 connector的例項監聽在使用者配置的埠上,當應用伺服器啟動時,http/1.1 connector負責建立若干執行緒,用於處理使用者請求,建立的執行緒數目取決於使用者配置的minthreads值,預設為5,當有更多的使用者請求到來時,http/1.1 connector將會建立更多的執行緒用於處理請求,建立執行緒的最大值由maxthreads定義,預設值為20,當所有的執行緒都在忙於處理使用者請求時,新到來的請求將會放入http/1.1 connector建立的socket佇列中,佇列的長度由acceptcount屬性定義,當等待佇列也被占用滿了,新來的使用者請求將會收到connection refused錯誤。

所有的connector提供的配置項(不完全版scheme, issecure, xpoweredby, useipvhosts ):

allowtrace 如果需要伺服器能夠處理使用者的haed/trace請求,這個值應該設定為true,預設值是false;

emptysessionpath 如果設定為true,所有session,cookie的path將會被設定為/,這種設定通常是在portlet中比較有用,預設值是false;

enablelookups 如果需要在呼叫request.getremotehost()方法時獲取到客戶端的機器名,則需要配置為true,如果配置為false,將會跳過dns查詢直接返回客戶端機器的ip位址,通常為了提高效能,將此值設定為false,預設值是true;

maxpostsize post方法能夠提交的資料的最大大小,如果沒有宣告或者設定為小於等於0,則表示post提交的資料大小是不限制的,預設值是2megabytes.

protocol 設定處理請求的協議,預設是http/1.1,即org.apache.coyote.http11.http11protocol,此外還支援的協議有:org.apache.coyote.http11.http11nioprotocol(通過nio處理使用者請求,可以提高系統效能), org.apache.coyote.http11.httpaprprotocol。

proxyname/proxyport 如果web伺服器使用了**伺服器,配置此引數意味著在呼叫request.getservername的時候將會獲取**伺服器的名稱,getserverport()將會返回proxyport。

redirectport 如果connector的配置是支援非ssl的請求,當乙個ssl請求到來時,伺服器會自動的將請求重定位到redirectport。

uriencoding uri位元組轉化成string的時候的編碼方式,預設為iso-8859-1,如果頁面需要支援中文,一般可以將其設定為utf-8或者gbk,gb2312。

usebodyencodingforuri 如果設定為true,則會根據頁面的編碼決定uri的編碼方式,預設是false。

http/1.1 connector提供的配置項:

acceptcount 等待佇列的長度,預設值是100。

address 如果tomcat所在的主機有多個ip,這個值宣告了用於監聽http請求的ip位址。

buffersize connector建立的輸入流的大小,預設值是2048 bytes,提高這個值可以提公升效能,增加記憶體消耗。

compressablemimetype 使用http壓縮的mime型別,使用逗號分割,預設值是 text/html,text/xml,text/plain。

compression 為了節省頻寬,可以將這個值設定為on,從而啟用http/1.1 gzip壓縮。off關閉壓縮,forces強制使用壓縮,預設值是off。

connectiontimeout connector接受乙個連線後等待的時間(milliseconds),預設值是60000。

executor 在service節點下,connector節點前可以配置乙個executor節點用於管理執行緒,這個屬性的值是配置的executor的名稱,如果應用了此屬性且executor存在,那麼任何其他的關於thread的配置將會被忽略。

keepalivetimeout 在connector關閉連線前,connector為另外乙個請求keep alive所等待的微妙數,預設值和 connectiontimeout 一樣。

maxhttpheadersize http請求、響應頭資訊的最大大小,預設是8192bytes。

maxkeepaliverequests http/1.0 keep alive 和http/1.1 keep alive / pipeline的最大請求數目,如果設定為1,將會禁用掉keep alive和pipeline,如果設定為小於0的數,keep alive的最大請求數將沒有限制。預設為100。

maxthreads 用於處理使用者請求的最大執行緒數,預設值是20。

nocompressionuseragents: 設定不使用http gzip壓縮的客戶端,使用逗號分隔,在某些瀏覽器不支援壓縮的時候可以使用此屬性。

port connector監聽的埠。

restricteduseragents 設定不使用keep alive的客戶端**名稱,使用逗號分割,預設值是空字串。

server 覆蓋http響應的serve頭資訊,如果不設定的話,預設值是 apache-coyote/1.1。一般情況下不需要關注此屬性。

socketbuffer socket輸出流緩衝區的大小,預設是9000bytes,如果設定為小於0的值,則表示不使用此緩衝區。

tcpnodelay 預設值是true,設定為true可以提高系統效能。

threadpriority 請求處理執行緒的優先順序,預設的優先順序是normal。

UDP SOCKET程式設計中的connect

udp是乙個無連線的協議,因此socket函式connect 似乎對udp是沒有意義的,然而事實不是這樣。使用connect 來建立與服務程式的連線。與tcp協議不同,udp的connect 並沒有與服務程式三次握手。上面說了udp是非連線的,實際上也可以是連線的。使用連線的udp,kernel可以...

qt中的 connect 函式

1 connect 函式實現的是訊號與槽的關聯。注意 只有qo bject類及其派生的類才能使用訊號和槽的機制 2 函式原型 static qmetaobject connection connect const qobject sender,const char signal,const qobj...

Tomcat原始碼之聯結器Connector解析

宣告 本文摘抄參考自 connector的主要功能 聯結器主要用於對外交流,它負責接收外部的請求,然後把請求轉交給container進行處理。主要功能如下 監聽網路請求 接受位元組流 根據應用層協議 http or ajp 把接受到位元組流轉換成tomcatrequest 把tomcatreqeus...