逾時對伺服器效能的影響巨大。為 Proxy Server 設定最合適的逾時值,有助於節省網路資源。
若要配置 Proxy Server 內的逾時值,可使用兩個針對實例的 SAF (伺服器應用程式函數) 及一個全域參數:
init-proxy() 函數會初始化 Proxy Server 的內部設定。Proxy Server 初始化時會呼叫此函數,但您仍然應該在 obj.conf 檔案中指定此函數,才能正確初始化各個參數值。
此函數的語法如下:
Init fn=init-proxy timeout=seconds timeout-2=seconds
在上述範例中,下列參數會直接套用至 Proxy Server 的 init-proxy SAF 逾時設定:
timeout (代理伺服器逾時) - 代理伺服器逾時參數會告知伺服器應等待多久才能退出閒置連線。若設定較大的代理伺服器逾時值,會將有價值的代理伺服器執行緒長時間由可能已當機的用戶端佔用。 若逾時值較低,則會退出需要很長時間才產生結果的 CGI 程序檔,如資料庫查詢閘道。
若要決定伺服器的最佳代理伺服器逾時值,請考量下列事項:
Proxy Server 會處理許多資料庫查詢或 CGI 程序檔嗎?
Proxy Server 處理的請求數目是否少到在任何給定的時間都可以有閒置的程序?
如果對上述問題中任何一個的答案為是,就可以決定設定較大的代理伺服器逾時值。建議設定的最高代理伺服器 timeout 值為 1 小時。預設值為 300 秒 (5 分鐘)。
您可以存取 Server Manager 中 [Preferences] 標籤下的 [Configure System Preferences] 頁面,以檢視或修改代理伺服器逾時值。將以 [Proxy Timeout] 來參照此參數。
timeout-2 (中斷後逾時) - 中斷後逾時值告知 Proxy Server 在用戶端退出作業事件後,要繼續寫入快取檔案多長時間。換句話說,如果 Proxy Server 快要完成文件快取時用戶端突然退出連線,伺服器仍然可以繼續快取文件,直到 timeout after interrupt 值才停止。
建議的最高 timeout after interrupt 值為 5 分鐘。預設值為 15 秒。
http-client-config 函數可配置 Proxy Server 的 HTTP 用戶端。
此函數的語法如下:
Init fn=http-client-config keep-alive=(true|false) keep-alive-timeout=seconds always-use-keep-alive=(true|false) protocol=HTTP Protocol proxy-agent="Proxy-agent HTTP request header"
其設定為:
always-use-keep-alive - (可選) 布林值,指出 HTTP 用戶端是否應嘗試使用永久性連線。預設值為 [true]。
always-use-keep-alive - (可選) 布林值,指出 HTTP 用戶端是否可對各種請求重複使用現有的永久性連線。預設值為 [false],表示對於非 GET 請求或含有內文的請求將不會重複使用永久性連線。
protocol - (可選) HTTP 協定版本字串。依預設,HTTP 用戶端將使用 HTTP/1.0 或 HTTP/1.1,視 HTTP 請求的內容而定。僅在發生特定協定的互通功能問題時,才使用 protocol 參數。
proxy-agent - (可選) Proxy-agent HTTP 請求標頭的值。預設值為包含 Proxy Server 產品名稱和版本的字串。
KeepAliveTimeout() 參數決定伺服器將用戶端與 Proxy Server 之間的 HTTP 持續作用連線或永久性連線保持開啟的最長時間 (以秒為單位)。預設為 30 秒。如果閒置超過 30 秒,連線即逾時。最長為 300 秒 (5 分鐘)。
magnus.conf 檔案中的逾時設定會套用至用戶端和 Proxy Server 之間的連線。obj.conf 檔案中的 http-client-config SAF 逾時設定則會套用至 Proxy Server 與原始伺服器之間的連線。