Web 伺服器外掛程式

Web 伺服器外掛程式使得 Web 伺服器能夠將動態內容(例如:Servlet)的要求傳達給應用程式伺服器。 每個 Web 伺服器外掛程式都有一項相關聯的 Web 伺服器定義。 為每一個外掛程式產生的配置檔 (plugin-cfg.xml) 是以透過相關聯 Web 伺服器遞送的應用程式為基礎。

Web 伺服器外掛程式用來將 HTTP 要求從支援的 Web 伺服器轉遞給應用程式伺服器。 利用 Web 伺服器外掛程式,來提供 Web 伺服器與應用程式伺服器間的通訊,具有下列優點:
  • XML 型配置檔
  • 防火牆產品可辨識的標準通訊協定
  • 使用 HTTPS 的安全性,以取代經由 Secure Sockets Layer (SSL) 的專有「開放式 Servlet 引擎 (OSE)」

每一個支援的 Web 伺服器外掛程式可在許多作業系統上執行。 如需受支援 Web 伺服器的最新相關資訊,請參閱產品的 受支援軟硬體

避免麻煩: Web 伺服器外掛程式的預設行為是將要求緩衝到 64 KB ,如果應用程式伺服器沒有回應,請重試要求。 如果您想確保高可用性,且您的 HTTP 要求往往很大,請在管理主控台中的 Web 伺服器外掛程式要求遞送內容頁上,將讀取 HTTP 要求內容時所用的緩衝區大小上限內容設為 -1。 將這個內容設為 -1 時,會移除緩衝區大小上限,這可讓 Web 伺服器外掛程式將所有要求放在緩衝區中,而不考慮其大小。 一旦要求內文塞滿緩衝區大小,就會重試要求。 如果您想停用所有要求緩衝區作業,進而不再重試含有要求內文的要求,您可以將這個內容設為 0

親緣性要求

親緣性是指含有 JSESSIONID 的要求。 階段作業親緣性是指將具有相同 JSESSIONID 的所有要求,傳送至相同的應用程式伺服器。 例如,如果起始要求傳送至 clone5,則來自相同瀏覽器的下一個親緣性要求也會傳送至 clone5 ,而不論 plugin-cfg.xml 檔中指定給 LoadBalanceWeight 內容的加權值為何。

將 IgnoreAffinityRequests 設為 true

如果您針對負載平衡選項 Web 伺服器外掛程式要求遞送內容選取 Round-Robin ,並將 plugin-cfg.xml 檔案中的 IgnoreAffinityRequests 內容保留為其預設值 true,則親緣性要求不會減少負載平衡加權。 這最適合大部分環境,且應該很少修改。

將 IgnoreAffinityRequests 設為 false

將 IgnoreAffinityRequests 內容設為 false 會導致每次收到親緣性要求時降低加權。

附註: 注意: 當 IgnoreAffinityRequests 設為 false時,外掛程式會嘗試在整個外掛程式程序執行時間內,甚至在伺服器之間進行整體配送。 伺服器之間的這種分配可能導致所有資料流量可能導向至一小部分伺服器,這可能導致伺服器超載。

如果您針對 負載平衡選項 內容選取 Random ,親緣性要求仍會傳送至相同的 cloneid ,但會隨機遞送新要求,且會忽略指定給 LoadBalanceWeight 內容的值。

失效接手

如果要求連線超出 plugin-cfg.xml 檔的 ConnectTimeout 內容中指定的時間限制,或從應用程式伺服器傳回 5xx 錯誤, Web 伺服器外掛程式會將伺服器標示為關閉,並嘗試連接至另一個應用程式伺服器。

針對要求或回應,通常不會在第一次超出 plugin-cfg.xml 檔案中 ServerIOTimeout 內容所指定的時間限制時發生失效接手。 Web 伺服器外掛程式反而會利用新的串流,嘗試重送要求至相同的應用程式伺服器。 當第二次超過 ServerIOTimeout 內容中指定的時間時,Web 伺服器外掛程式會將伺服器標示為無法使用,並起始失效接手程序。

避免麻煩: 如果發生失效接手狀況,則將大量擱置要求傳送至相同的應用程式伺服器可能會影響該應用程式伺服器的效能。 您可以使用 MaxConnections 內容,來限制應用程式伺服器可能擱置的要求數目。

執行多項 Web 伺服器子程序

大部分的 Web 伺服器都可以配置成啟動多項子程序。 在此情況下,每一項子程序都會載入其自己的 Web 伺服器實例。 當執行多項 Web 伺服器子程序時,請謹記:
  • Web 伺服器外掛程式的多個執行中實例不能共用資訊。 因此,每一部應用程式伺服器的動態變更負載平衡加權,並不會在 Web 伺服器外掛程式的實例之間共用。 舉例來說,某個 Web 伺服器外掛程式實例認為應用程式伺服器正在執行,且加權是 5,另一個 Web 伺服器外掛程式實例認為同一應用程式伺服器即將關閉,且無法使用。 這個觀點差異可能造成以不同的方式處理送入的要求,而這取決於該要求是由哪一個 Web 伺服器外掛程式實例來處理。
  • Web 伺服器外掛程式的設定是依實例分別處理。 舉例來說,每一個 Web 伺服器外掛程式實例的 MaxConnections 內容,各自指定該 Web 伺服器上容許的擱置要求數目。 如果將 MaxConnections 內容設為 20,且您啟動三項 Web 伺服器子程序,這三個 Web 伺服器外掛程式實例都各自容許與相同應用程式伺服器之間可有 20 條擱置的連線,這表示可能會有最多 60 條的擱置連線。