第二十三章 Web 網關的配置基礎知識
配置 Web
服務器以與 Web
網關配合使用后,請根據需要配置 Web
網關。可以使用管理頁面來配置默認參數、單個服務器和 Web
應用程序。
此頁面提供有關一些常見配置主題的附加信息。
Web 網關配置和日志文件
Web Gateway
創建并使用配置文件和日志文件,分別命名為 CSP.ini
和 CSP.log
。為了方便起見,管理頁面指示了這些文件的位置。
提示:很少需要直接編輯配置文件,因為通常通過管理頁面進行配置。如有必要,文檔會描述配置中的指令。如果需要直接編輯配置文件,請參閱卡中 %CSP.Mgr.GatewayMgr
的類引用。方法 SetApplicationParams
、SetDefaultParms
和 SetServerParams
提供參數的簡短描述。
自動路由到IRIS
的文件類型
InterSystems
文件類型在IRIS
中處理(特別是由 CSP
引擎)。所有其他文件(靜態文件)可由 Web
服務器或 CSP
引擎提供服務。 CSP
引擎可以為放置在 Web
應用程序路徑中的任何類型的文件(包括靜態文件)提供服務。設置 CSP
引擎來提供靜態文件可以簡化 Web
應用程序的 Web
服務器配置,因為您無需在 Web
服務器配置中創建別名來表示應用程序靜態文件的保存位置。設置 CSP
引擎來提供靜態文件可以解決當單個(即通用)Web
服務器提供兩個不同版本的 IRIS
服務時的爭用問題,每個版本都需要不同版本的某些靜態文件(例如,超級事件代理組件)。
要讓 CSP
引擎為特定 Web
應用程序提供靜態文件,請將靜態文件放置在 Web 應用程序的文件系統中相對于構成應用程序的 CSP
文件的正確位置(而不是放置在 Web
服務器自己的文檔文件系統中)。
注意:要運行基于 Zen
的應用程序,必須啟用“服務文件”選項并正確配置 Web
服務器。
從 IRIS
提供靜態文件
可以配置 Web
服務器和 Web
網關安裝,以便 IRIS
承擔提供靜態文件的責任。管理門戶針對 IRIS
配置為為應用程序中的所有組件提供服務。但是,仍然可以配置 Web
服務器,使其保留提供靜態文件的責任。
IRIS
數據庫服務器為所有 CSP
提供服務。它還可以通過 Web
網關為 Web
應用程序提供任何類型的靜態文件。在標準 Web
應用程序中,Web
服務器(不是數據庫服務器)通常提供靜態內容。
表示字符編碼
CSP
引擎通過流服務器,以與主要 Web
服務器一致的方式處理靜態文件,以確定 JavaScript
文件的字符編碼?,F代約定是將所有 JavaScript
文件標記為 application/javascript
的 Content-Type
,并且您確保頁面上使用的所有 JavaScript
文件都是這種情況。
JavaScript
文件以這種方式標記:
- 如果文件包含
BOM
(字節順序標記),瀏覽器會自動檢測到它并使用正確的字符集來讀取它。 - 如果文件不包含
BOM
,則瀏覽器假定該文件是UTF-8
。
如果需要覆蓋此行為以指定 JavaScript
文件的字符集,請將Global
^%SYS("CSP","MimeFileClassify","JS")
設置為列表值 $listbuild(contenttype, binary, charset)
。例如,
SET ^%SYS("CSP", "MimeFileClassify", "JS") = $listbuild("text/javascript", 0 ,"ISO-8859-1")
這將設置較舊的內容類型并使用 ISO-8859-1
字符集。此外,如果 Caché
轉換表定義為空字符串以外的其他內容,或者Global節點 ^%SYS("CSP","DefaultFileCharset")
設置為空值,Caché
將為所有 JavaScript
使用此字符集和其他文本文件。默認情況下,這兩個Global
節點均未設置。
啟用服務文件選項
Web
應用程序的“服務文件”選項具有以下值:
-
Always
— 服務文件已打開。 -
No
— 服務文件已關閉。 -
Always and cached
—Web Gateway
可以緩存Web
服務器上的靜態文件。此設置提高了效率,因為系統可以提供緩存的靜態頁面,而無需返回IRIS
服務器。 -
Use InterSystems Security
— 如果用戶具有訪問IRIS
實例作為Web
應用程序一部分的動態.csp
或.cls
頁面的適當授權,則該實例的CSP
引擎將在該Web
應用程序位置處理對靜態文件的請求。如果用戶沒有適當的授權,則CSP
服務器將返回HTTP 404
響應。
配置 Web
服務器以允許 IRIS
提供靜態文件
默認情況下,InterSystems
提供的安裝腳本不會查找或配置外部 Web
服務器。如果運行自定義安裝,則可以選擇配置任何先前安裝的 IIS
或 Apache Web
服務器的選項,以啟用對 CSP
引擎的支持。安裝腳本創建 /csp
虛擬目錄并創建由 Web Gateway
處理的 InterSystems
文件類型的映射。這足以讓 CSP
引擎通過該 Web
服務器正常運行。它不啟用對服務文件功能的支持。您必須手動配置 Web
服務器以映射要通過 Web
網關處理的特定文件擴展名。這是設計使然,因為通過這種機制開放數據庫服務器會帶來安全風險,不應該在無形中進行。
有關 Web
服務器的說明,請參閱映射其他文件類型。
從 Web
服務器提供靜態文件
可以使用從 Web
服務器提供靜態頁面的傳統配置。在這種情況下,靜態文件選項的設置無關緊要。當公共 Web
服務器為兩個不同版本的 InterSystems IRIS
提供服務(每個版本需要不同版本的某些靜態文件(例如超級事件代理組件))時,這可以消除爭用。
如果已將 Web
服務器本身配置為提供靜態文件,請確保每個 Web
服務器上都存在靜態內容。
在高可用性解決方案的硬件負載均衡器上啟用粘性會話
對于通過 CSP
運行的高可用性解決方案 建議使用硬件負載平衡器進行負載平衡和故障轉移。 要求在負載均衡器中啟用粘性會話支持;這保證了——一旦在給定的 Web
網關實例和給定的應用程序服務器之間建立了會話——來自該用戶的所有后續請求都在同一對上運行。此配置可確保會話 ID
和服務器端會話上下文始終保持同步;否則,可能會在一臺服務器上創建會話,但來自該用戶的下一個請求在不存在該會話的不同系統上運行,這會導致運行時錯誤(尤其是超級事件,需要會話密鑰來解密該會話)要求)。有關如何啟用粘性會話支持的說明,請參閱負載均衡器文檔。
注意:可以將系統配置為在沒有粘性會話的情況下工作,但這需要將 Web
會話Global
映射到企業中的所有系統上,并且可能會導致嚴重的鎖爭用,因此不建議這樣做。
啟用腳本以重新激活 Web
網關配置
可以啟用 IRIS
外部的腳本來重新激活 Web Gateway
的配置。
腳本應將以下行(區分大小寫)添加到 Web
網關配置文件的 SYSTEM
部分:
[SYSTEM]
RELOAD=1
Web Gateway
看門人守護程序大約每分鐘檢查一次 RELOAD
標志,如果設置正確,則重新加載并重新激活其配置并從文件中刪除該標志。成功重新加載操作后,以下消息將寫入 Web Gateway
事件日志:
Gateway Management
Gateway Configuration Reloaded and Reactivated
混合多進程/多線程Web服務器架構
Web Gateway
包含對混合多進程/多線程 Web
服務器架構的增強支持。 UNIX?
下的 Apache
版本 2.4
是根據此架構實現的 Web
服務器的一個示例。
核心 Web Gateway
資源保存在共享內存區域中。所有Web
服務器工作進程都有一個共同的運行配置、連接表和表單緩存。 Web Gatewa
y 系統狀態表單顯示整個 Web
服務器安裝的狀態,而不僅僅是單個工作進程的狀態。狀態表單的連接表包括一個額外的列,其中包含與 IRIS
的每個連接相關的 Web
服務器進程 ID
。
最后,多進程架構支持狀態感知會話。盡管連接池(到 IRIS
)分布在多個 Web
服務器進程中,但 Web
網關使用進程間通信 (IPC
) 協議將狀態感知會話的請求路由到 Web
服務器環境中的正確托管進程。