接下來針對網路特性的議題,就是CDN Reverse Proxy的特性 "持久性連接 Persistent Connections"。
所有的網路連線請求前,都會先等TCP/IP三向交握建立連線完成後,完成TLS交握再進行HTTP的請求,並於完成後請關閉連線。
因此有多少個來源就要透過同樣的流程建立再關閉連線,當連線數多的時候除了相同流程浪費時間外,系統資源就會逐漸消耗殆盡。
CDN Reverse Proxy架構的優勢
運作方式:
1.當使用者端首次連接到CDN時,會與CDN主機建立 TCP 連線。
2.此時,CDN主機會與源站服務主機建立連線,並啟用持續連線保持開啟較長的時間。
3.來自使用者端的後續 HTTP 請求可以透過相同的、已建立的連線重複傳送,而不是為每個要求開啟新的連線。
好處:
-改進的性能: 透過重複使用連線,可以減少載入網頁和其他內容的整體時間。
-減少延遲: 消除握手延遲意味著等待建立連線所花費的時間更少。
-優化資源利用率: 透過維護現有連接池而不是不斷建立和拆除它們,可以更有效地利用其資源。
-增強的使用者體驗: 為使用者提供更快的載入時間和更靈敏的線上體驗。
origin Persistent Connections (PConns) Time
前面提到CDN主機會與源站服務主機建立持續連線,以提供更好的效能和資源使用,CDN主機會在300秒後結束閒置連線,這是平台預設逾時的值。
因此,地端負責建立以及管理連線的負載均衡設備或WEB主機,同樣也必須能夠將逾時時間,設定一個稍大的值例如301秒,以確保持續連線的開啟。
Test persistent connection (pconn) on an origin server
顧問提到,上線前務必檢查這個值的設定喔,否則2端時間不一致時,有可能偶爾服務發生5XX的錯誤,這不好除錯啦。
Jerry問到那要怎麼確認我家同仁設定正確了? 顧問提供了Akamai KB建議的測試方式 :
$ time openssl s_client -connect www-org.example.com:443
GET / HTTP/1.1
Host: www.example.com
Connection: keep-Alive
<Press enter button two times and wait for session to disconnect>
Connection closed by foreign host.
real 5m1.032s
user 0m0.004s
sys 0m0.000s