http://bert82503.iteye.com/blog/2152613
?
前些天,線上出現(xiàn)“ 服務(wù)端長(zhǎng)連接與客戶端短連接引起Nginx的Writing、Active連接數(shù)過高問題 ”,這個(gè)是由于“服務(wù)端使用HTTPs長(zhǎng)連接,而客戶端使用短連接”引起。這幾天,發(fā)現(xiàn)Nginx與Tomcat之間也存在同樣的問題,原因是兩邊的相關(guān)配置參數(shù)不一致引起的。(這是 心 細(xì)活 !)
?
先說說服務(wù)為什么使用 HTTPs長(zhǎng)連接技術(shù) ?有如下幾個(gè)原因:
- 對(duì)響應(yīng)時(shí)間要求較高;
- 服務(wù)走的是公網(wǎng),客戶端與服務(wù)端的TCP 建立的三次握手 和 斷開的四次握手 都需要40ms左右(真實(shí)數(shù)據(jù)包計(jì)算出來的),共需要 80ms 左右;
- 每個(gè)接入方使用的IP就若干個(gè),需要建立的請(qǐng)求連接有限。
使用長(zhǎng)連接技術(shù),可以大幅減少TCP頻繁握手的次數(shù),極大提高響應(yīng)時(shí)間;同時(shí),即使使用長(zhǎng)連接技術(shù),也不需要消耗很多的系統(tǒng)資源用來緩存sockets會(huì)話信息。
?
以下是在自己電腦上驗(yàn)證三者之間的長(zhǎng)連接請(qǐng)求,連接存活時(shí)間都為 5min 。
【環(huán)境】
操作系統(tǒng):Ubuntu 14.04 LTS
Nginx: 1.6.2
Tomcat: 7.0.51
JDK: 1.7.0_51
Client: HttpClient? 4.3.5
?
【相關(guān)配置】
1. Nginx - 反向代理
nginx.conf:
http
?{
??? ...
? ? ##
? ? # 與Client連接的長(zhǎng)連接配置
? ? ##
? ? #? http://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_requests
? ? # 設(shè)置通過"一個(gè)存活長(zhǎng)連接"送達(dá)的最大請(qǐng)求數(shù)(默認(rèn)是 100 ,建議根據(jù)客戶端在"keepalive"存活時(shí)間內(nèi)的總請(qǐng)求數(shù)來設(shè)置)
? ? # 當(dāng)送達(dá)的請(qǐng)求數(shù)超過該值后,該連接就會(huì)被關(guān)閉。(通過設(shè)置為5,驗(yàn)證確實(shí)是這樣)
? ?? keepalive_requests? 8192 ;
?
? ??#? http://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout
? ??# 第一個(gè)參數(shù)設(shè)置"keep-alive客戶端長(zhǎng)連接"將在"服務(wù)器端"繼續(xù)打開的超時(shí)時(shí)間(默認(rèn)是 75秒 ,建議根據(jù)具體業(yè)務(wù)要求來,但必須要求所有客戶端連接的"Keep-Alive"頭信息與該值設(shè)置的相同(這里是5分鐘),同時(shí)與上游服務(wù)器(Tomcat)的設(shè)置是一樣的)
? ??# 可選的第二個(gè)參數(shù)設(shè)置“Keep-Alive: timeout=time”響應(yīng)頭字段的值
? ??keepalive_timeout ? 300s 300s ;
?
??? ...
? ??include /etc/nginx/web_servers.conf;
? ??include /etc/nginx/proxy_params;
}
web_servers.conf:
upstream
?web_server {
??? server 127.0.0.1:8080;
? ? #? http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive
? ? # 連接到上游服務(wù)器的最大并發(fā)空閑keepalive長(zhǎng)連接數(shù)(默認(rèn)是 未設(shè)置 ,建議與Tomcat? Connector 中的 maxKeepAliveRequests 值一樣)
? ? # 當(dāng)這個(gè)數(shù)被超過時(shí),使用"最近最少使用算法(LUR)"來淘汰并關(guān)閉連接。
????
keepalive
?
512
;
}
server ?{
? ??listen 80;
? ??server_name lihg.com www.lihg.com;
?
? ??location ?/ {
? ??? ??proxy_pass http://web_server;
?
? ??? ??##
? ??? ??# 與上游服務(wù)器(Tomcat)建立keepalive長(zhǎng)連接的配置,可參考上面的keepalive鏈接里的"For HTTP"部分
? ??? ??##
? ??? ??#? http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_http_version
? ??? ??# 設(shè)置代理的HTTP協(xié)議版本(默認(rèn)是1.0版本)
? ??? ??# 使用keepalive連接的話,建議使用1.1版本。
? ??? ??proxy_http_version ? 1.1 ;
? ??? ??#? http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header
? ??? ??# 允許重新定義或追加字段到傳遞給代理服務(wù)器的請(qǐng)求頭信息(默認(rèn)是close)
? ??? ??proxy_set_header ? Connection ? "" ;
?
? ??? ??proxy_redirect off;
? ??}
}
?
[參考]
?
2. Tomcat
conf/server.xml
:
??? <!--?
??? ??? maxThreads:由此連接器創(chuàng)建的最大請(qǐng)求處理線程數(shù),這決定可同時(shí)處理的最大并發(fā)請(qǐng)求數(shù)(默認(rèn)為200)
??? ??? minSpareThreads:保持運(yùn)行狀態(tài)的最小線程數(shù)(默認(rèn)為10)
??? ??? acceptCount:接收傳入的連接請(qǐng)求的最大隊(duì)列長(zhǎng)度(默認(rèn)隊(duì)列長(zhǎng)度為100)
??? ????
??? ??? connectionTimeout:在接收一條連接之后,連接器將會(huì)等待請(qǐng)求URI行的毫秒數(shù)(默認(rèn)為60000,60秒)
??? ??? maxConnections:在任何給定的時(shí)間,服務(wù)器能接收和處理的最大連接數(shù)(NIO的默認(rèn)值為10000)
? ? ? ??
keepAliveTimeout
:在關(guān)閉這條連接之前,連接器將等待另一個(gè)HTTP請(qǐng)求的毫秒數(shù)(默認(rèn)使用connectionTimeout屬性值)
??? ????
maxKeepAliveRequests
:在該連接被服務(wù)器關(guān)閉之前,可被流水線化的最大HTTP請(qǐng)求數(shù)(默認(rèn)為100)
??? ????
??? ??? enableLookups:?jiǎn)⒂肈NS查詢(默認(rèn)是DNS查詢被禁用)
??? ??? compression:連接器是否啟用HTTP/1.1 GZIP壓縮,為了節(jié)省服務(wù)器帶寬
??? ??? compressionMinSize:指定輸出響應(yīng)數(shù)據(jù)的最小大小(默認(rèn)為2048,2KB)
??? ??? compressableMimeType:可使用HTTP壓縮的文件類型
??? ??? server:覆蓋HTTP響應(yīng)的Server頭信息
???? -->
??? <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
?????????????? maxThreads="
512
"
?????????????? minSpareThreads="10"
?????????????? acceptCount="768"
???????????????
?????????????? connectionTimeout="1000"
?????????????? maxConnections="1280"
???????????????
keepAliveTimeout
="
300000
"
???????????????
maxKeepAliveRequests
="
512
"
???????????????
?????????????? enableLookups="false"
?????????????? URIEncoding="utf-8"
?????????????? redirectPort="8443"
?????????????? compression="on" compressionMinSize="1024" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json,application/xml"
?????????????? server="webserver" />
?[參考]
The HTTP Connector - Tomcat 7 Configuration Reference?
3. Client
客戶端HTTP?"Keep-Alive"實(shí)現(xiàn)代碼,請(qǐng)打開下一行的鏈接。
KeepAliveHttpClientsTest ?->? httpclient-x
?
【結(jié)果驗(yàn)證】
使用 "sudo? netstat ?-antp | grep 80" 監(jiān)控與Nginx相關(guān)的線程狀態(tài)
?
Proto ?? Recv-Q ? ? ? ??? ? Send-Q ? ? ? ??????? Local Address ? ? ? ? ? ? ? ? ? ? Foreign Address ? ? ? ? ? ? ? ? ?State ? ? ? ? ? ?? PID/Program name
協(xié)議 ? ? 接收隊(duì)列長(zhǎng)度 ?? 發(fā)送隊(duì)列長(zhǎng)度 ? ? 本地socket的地址和端口號(hào) ?遠(yuǎn)程socket的地址和端口號(hào) ?socket狀態(tài) ? 進(jìn)程id/進(jìn)程名稱
?
套接字(socket)狀態(tài)
ESTABLISHED :含有一條已建立連接(connection)的socket
SYN_SENT:正在積極嘗試建立一條連接的socket
SYN_RECV:接收到來自網(wǎng)絡(luò)的一個(gè)連接請(qǐng)求
FIN_WAIT1:socket已關(guān)閉,同時(shí)連接正在關(guān)閉中
FIN_WAIT2:連接已關(guān)閉,同時(shí)socket正在等待遠(yuǎn)程終端的一個(gè)關(guān)閉請(qǐng)求
TIME_WAIT :socket正在等待關(guān)閉仍然在網(wǎng)絡(luò)中的處理包
CLOSE:socket未被使用
CLOSE_WAIT:遠(yuǎn)程終端已經(jīng)關(guān)閉,等待本地socket關(guān)閉
LAST_ACK:遠(yuǎn)程終端已經(jīng)關(guān)閉,同時(shí)本地socket也關(guān)閉了。等待確認(rèn)包
LISTEN:socket正在監(jiān)聽傳入的連接
CLOSING:兩邊socket都已關(guān)閉,但仍然還沒有我們所需要的發(fā)送數(shù)據(jù)
UNKNOWN:未知的socket狀態(tài)
?
?
=====================
單個(gè)請(qǐng)求 的線程狀態(tài)
=====================
# 第1次請(qǐng)求,nginx分別與上游服務(wù)器(tomcat)、client互相建立 1條連接
tcp ? ? ? ?0 ? ? ?0 0.0.0.0: 80 ?? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?1010/ nginx ?? ? ?
tcp ? ? ? ?0 ? ? ?0?127.0.0.1: 47272 ?? ? ? ? 127.0.0.1: 8080 ?? ? ? ? ?ESTABLISHED 1014/ nginx: worker ?(nginx -> tomcat)
tcp ? ? ? ?0 ? ? ?0?127.0.0.1: 80 ?? ? ? ? ? ?127.0.0.1: 53240 ?? ? ? ? ESTABLISHED 1014/ nginx: worker ?(nginx -> client)
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1: 8005 ?? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/ java ?? ? ?
tcp6 ? ? ? 0 ? ? ?0 ::: 8080 ?? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/ java ?? ? ?
tcp6 ? ? ? 0 ? ? ?0?127.0.0.1:53240 ? ? ? ? 127.0.0.1: 80 ?? ? ? ? ? ?ESTABLISHED 13845/java ? ? ?(client -> nginx)
tcp6 ? ? ? 0 ? ? ?0?127.0.0.1: 8080 ?? ? ? ? ?127.0.0.1:47272 ? ? ? ? ESTABLISHED 10912/java ? ? ?(tomcat -> nginx)
?
# 休眠10秒鐘后,發(fā)起第2次請(qǐng)求
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:80 ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?1010/nginx ? ? ?
tcp ? ? ? ?0 ? ? ?0 127.0.0.1: 47272 ?? ? ? ? 127.0.0.1:8080 ? ? ? ? ?ESTABLISHED 1014/nginx: worker?
tcp ? ? ? ?0 ? ? ?0 127.0.0.1:80 ? ? ? ? ? ?127.0.0.1: 53240 ?? ? ? ? ESTABLISHED 1014/nginx: worker?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8005 ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 :::8080 ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:53240 ? ? ? ? 127.0.0.1:80 ? ? ? ? ? ?ESTABLISHED 13845/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8080 ? ? ? ? ?127.0.0.1:47272 ? ? ? ? ESTABLISHED 10912/java ? ? ?
?
#? 超過keepalive存活時(shí)間(5min)后 ,nginx已斷開與上游服務(wù)器(tomcat)的長(zhǎng)連接,同時(shí)與client連接進(jìn)入關(guān)閉過程
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:80 ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?1010/nginx ? ? ?
tcp ? ? ? ?0 ? ? ?0?127.0.0.1: 80 ?? ? ? ? ? ?127.0.0.1: 53240 ?? ? ? ?? FIN_WAIT2 ?? - ? ? ? ? ? ? ? ?(nginx -> client)
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8005 ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 :::8080 ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 1 ? ? ?0?127.0.0.1:53240 ? ? ? ? 127.0.0.1: 80 ?? ? ? ? ? ? CLOSE_WAIT ??13845/java ? ? ?(client -> nginx)
tcp6 ? ? ? 0 ? ? ?0?127.0.0.1: 8080 ?? ? ? ? ?127.0.0.1:47272 ? ? ? ?? TIME_WAIT ?? - ? ? ? ? ? ? ? (tomcat -> nginx)
?
?
# 休眠7分鐘后,發(fā)起第3次請(qǐng)求。nginx與上游服務(wù)器(tomcat)、client 重新建立新的長(zhǎng)連接 ( 不同的端口號(hào) )
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:80 ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?1010/nginx ? ? ?
tcp ? ? ? ?0 ? ? ?0 127.0.0.1:80 ? ? ? ? ? ?127.0.0.1: 53242 ?? ? ? ?? ESTABLISHED ?1014/ nginx: worker ?(nginx -> client)
tcp ? ? ? ?0 ? ? ?0 127.0.0.1: 47274 ?? ? ? ? 127.0.0.1:8080 ? ? ? ? ? ESTABLISHED ?1014/ nginx: worker ?(nginx -> tomcat)
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8005 ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 :::8080 ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:53242 ? ? ? ? 127.0.0.1:80 ? ? ? ? ? ?ESTABLISHED 13845/java ? ? ?(client -> nginx)
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8080 ? ? ? ? ?127.0.0.1:47274 ? ? ? ? ESTABLISHED 10912/java ? ? ?(tomcat -> nginx)
?
# 休眠10秒鐘后,發(fā)起第4次請(qǐng)求
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:80 ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?1010/nginx ? ? ?
tcp ? ? ? ?0 ? ? ?0 127.0.0.1:80 ? ? ? ? ? ?127.0.0.1:53242 ? ? ? ? ESTABLISHED 1014/nginx: worker?
tcp ? ? ? ?0 ? ? ?0 127.0.0.1:47274 ? ? ? ? 127.0.0.1:8080 ? ? ? ? ?ESTABLISHED 1014/nginx: worker?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8005 ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 :::8080 ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:53242 ? ? ? ? 127.0.0.1:80 ? ? ? ? ? ?ESTABLISHED 13845/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8080 ? ? ? ? ?127.0.0.1:47274 ? ? ? ? ESTABLISHED 10912/java
?
# 請(qǐng)求剛結(jié)束后,nginx斷開與client的長(zhǎng)連接,但與上游服務(wù)器(tomcat)的長(zhǎng)連接還打開著,直到超過keepalive存活時(shí)間(5min)后才會(huì)被關(guān)閉。若在keepalive存活時(shí)間內(nèi)再次發(fā)起請(qǐng)求,nginx與上游服務(wù)器(tomcat)的 長(zhǎng)連接會(huì)被重用
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:80 ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?1010/nginx ? ? ?
tcp ? ? ? ?0 ? ? ?0 127.0.0.1: 47274 ?? ? ? ? 127.0.0.1:8080 ? ? ? ? ? ESTABLISHED ?1014/nginx: worker (nginx -> tomcat)
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8005 ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 :::8080 ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0?127.0.0.1: 53242 ?? ? ? ? 127.0.0.1: 80 ?? ? ? ? ? ? TIME_WAIT ?? - ? ? ? ? ? ? ? (client -> nginx)
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8080 ? ? ? ? ?127.0.0.1:47274 ? ? ? ? ESTABLISHED 10912/java ? ? ?(tomcat -> nginx)
?
#? 請(qǐng)求結(jié)束 1分鐘后 ,client到nginx的 TIME_WAIT 長(zhǎng)連接也被釋放
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:80 ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?1010/nginx ? ? ?
tcp ? ? ? ?0 ? ? ?0 127.0.0.1: 47274 ?? ? ? ? 127.0.0.1: 8080 ?? ? ? ? ?ESTABLISHED 1014/nginx: worker?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8005 ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 :::8080 ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8080 ? ? ? ? ?127.0.0.1:47274 ? ? ? ? ESTABLISHED 10912/java ? ??
?
# 請(qǐng)求結(jié)束5分鐘后,nginx斷開與上游服務(wù)器(tomcat)的長(zhǎng)連接
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:80 ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?1010/nginx ? ? ?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8005 ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 :::8080 ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0?127.0.0.1: 8080 ?? ? ? ? ?127.0.0.1: 47274 ?? ? ? ?? TIME_WAIT ?? - ? ? ? ? ? ? ? (tomcat -> nginx)
?
?
========================
3個(gè)并發(fā)請(qǐng)求 的線程狀態(tài)
========================
# 第1次請(qǐng)求,nginx分別與上游服務(wù)器(tomcat)、client互相建立 3條連接
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:80 ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?1010/nginx ? ? ?
tcp ? ? ? ?0 ? ? ?0 127.0.0.1: 80 ?? ? ? ? ? ?127.0.0.1: 53245 ?? ? ? ? ESTABLISHED 1014/nginx: worker?
tcp ? ? ? ?0 ? ? ?0 127.0.0.1: 47279 ?? ? ? ? 127.0.0.1: 8080 ?? ? ? ? ?ESTABLISHED 1014/nginx: worker?
tcp ? ? ? ?0 ? ? ?0 127.0.0.1: 80 ?? ? ? ? ? ?127.0.0.1: 53247 ?? ? ? ? ESTABLISHED 1014/nginx: worker?
tcp ? ? ? ?0 ? ? ?0 127.0.0.1: 47281 ?? ? ? ? 127.0.0.1: 8080 ?? ? ? ? ?ESTABLISHED 1014/nginx: worker?
tcp ? ? ? ?0 ? ? ?0 127.0.0.1: 80 ?? ? ? ? ? ?127.0.0.1: 53246 ?? ? ? ? ESTABLISHED 1014/nginx: worker?
tcp ? ? ? ?0 ? ? ?0 127.0.0.1: 47280 ?? ? ? ? 127.0.0.1: 8080 ?? ? ? ? ?ESTABLISHED 1014/nginx: worker?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8005 ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 :::8080 ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:53247 ? ? ? ? 127.0.0.1:80 ? ? ? ? ? ?ESTABLISHED 13976/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:53245 ? ? ? ? 127.0.0.1:80 ? ? ? ? ? ?ESTABLISHED 13976/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8080 ? ? ? ? ?127.0.0.1:47281 ? ? ? ? ESTABLISHED 10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8080 ? ? ? ? ?127.0.0.1:47280 ? ? ? ? ESTABLISHED 10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:53246 ? ? ? ? 127.0.0.1:80 ? ? ? ? ? ?ESTABLISHED 13976/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8080 ? ? ? ? ?127.0.0.1:47279 ? ? ? ? ESTABLISHED 10912/java ? ? ?
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:8080 ? ? ? ? ?127.0.0.1:47274 ? ? ? ? TIME_WAIT ? - ? ? ? ? ? ? ??
?
[參考]
netstat(8)?- Print network connections, routing tables, interface statistics - Linux manual page
?
至此,長(zhǎng)連接驗(yàn)證完畢!
?
?
玩的開心!^_^
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
