第四章 安裝 Web 網關
默認 Web
網關安裝和配置
當安裝 IRIS
并選擇安裝類型(在開發、服務器、自定義(選擇 Web
服務器網關組件)或 Web
服務器(僅限 Windows
平臺)時,安裝程序將配置現有的生產 Web
服務器(如果默認設置為類型:Windows
上的 IIS
和 Linux/UNIX?/macOS
上的 Apache
),然后安裝 Web Gateway
。如果這適合使用案例,安裝 Web
服務器,然后安裝 IRIS
可為 IRIS
實例提供有效的 Web
網關配置,而無需任何調整。
但是,如果使用不同的 Web
服務器和平臺組合、具有非典型的 Web
服務器架構,或者是想要自定義環境的高級用戶,請務必查看本文檔,其中提供了配置 Web
服務器和Web Gateway
連接到 IRIS
并使用 Web Gateway
提供的服務。
除了 InterSystems
文件類型(.csp
、.cls
、.zen
和 .cxw
)之外,托管管理門戶的 Web
服務器還必須通過 Web
網關路由以下其他文件類型的請求:.jpg
、.gif
、 .png
、.svg
、.css
和 .js
。請參閱配置 Apache
以將其他文件類型傳遞給 CSP
(對于 Apache
)或將 NSD
與 Nginx
結合使用(對于 Nginx
)。
Web
網關管理模塊
直接與托管 Web
服務器的 API
配合使用的 Web
網關架構通常由兩個模塊組成(其文件名因操作系統而異):
- 管理模塊(例如,
CSPmsSys.dll
),提供Web Gateway
管理頁面。 - 運行時模塊(例如,
CSPms.dll
),負責處理CSP
文件的請求以及加載管理請求并將其路由到管理模塊。
這些文件必須位于同一目錄中。
Web Gateway
組件和物理安裝路徑
本指南的后續部分介紹了如何使用所有受支持的 Web
服務器配置 Web Gateway
組件。此外,安裝程序還為專用 Web
服務器和同一主機上可能存在的任何第三方 Web
服務器創建并維護單獨的 Web
網關安裝。在此上下文中,第三方 Web
服務器是指不屬于安裝的軟件一部分的 Web
服務器。
Web Gateway
組件的精確安裝位置并不特別重要,前提是:
- 物理安裝路徑在適當的情況下與托管
Web
服務器配置中給出的路徑相匹配。 - 與各個組件所需的訪問權限相關的安全設置會進行適當調整。這對于由
Web
服務器直接訪問的Web Gateway
組件尤其重要,因為Web
服務器通常被鎖定到它們能夠訪問的文件(以及可以運行的可執行文件)受到仔細控制的程度。應該記住,對于由本身綁定到Web
服務器核心可執行文件的Web Gateway
二進制文件訪問的任何Web Gateway
配置(和日志)文件,安全注意事項也很重要。 - 尊重托管
Web
服務器的安全策略。某些Web
服務器(尤其是那些隨Secure Linux (SELinux)
一起提供的Web
服務器)被配置為無法訪問位于其自身文件系統之外的文件。此限制會影響某些面向Web
服務器的Web Gateway
組件的安裝位置。
有四種類型的 Web Gateway
組件需要考慮。
- 由
Web
服務器加載的二進制文件(基于 API 的擴展)。
這包括 Windows DLL
和 UNIX?
共享對象:
CSPms[Sys].dll
CSPn3[Sys].(dll|so|exe)
CSPa*[Sys].(dll|so)
CSPx[Sys].(dll|so)
mod_csp*.(dll|so)
安裝它們的物理位置應與托管 Web
服務器配置中的相應配置指令相匹配。這包括指示應加載哪些第三方模塊的指令。 Web
服務器需要讀取和加載這些模塊的權限。名為 CSP*
的模塊需要讀取和寫入 Web Gateway
配置和日志文件的權限。它們通常在與 Web Gateway
二進制文件相同的位置創建。
在考慮對這些模塊的訪問控制時,請記住,Web
服務器工作進程需要能夠訪問這些模塊以及任何相關配置和日志文件。例如,對于 Apache
,服務器通常以超級用戶權限啟動,但實際為 Web
請求提供服務的工作進程以低得多的權限級別運行(如 Apache
配置文件中的User
和 Group
指令所示)。應向為工作進程指定的用戶和組授予加載 Web Gateway
模塊的權限以及(如果適用)讀取和寫入配置和日志文件的能力。
- 由
Web
服務器調用的可執行文件(通用網關接口 (CGI
) 模塊)。并非所有配置都需要這些可執行文件。
[nph-]CSPcgi[Sys][.exe]
安裝它們的物理位置應與托管 Web
服務器配置中的相應配置指令相匹配。這包括指示這些 CGI
模塊應處理哪些 Web
請求的指令。
托管 Web
服務器的工作進程需要這些模塊的執行權限。沒有進一步的依賴關系。
-
Web
服務器返回的靜態文件。
注意:使用當前的 Web
網關配置,CSP
通常配置為直接從 IRIS
提供靜態文件,而不是讓 Web
服務器返回它們。本頁不適用于此類配置。
JavaScript
模塊(例如 CSPBroker.js
、CSPxmlhttp.js
等)
Java
小程序(例如 CSPBroker.class
、CSPBroker.jar
等)
Images
圖像(例如created-with-csp.gif
等)
托管 Web
服務器的工作進程需要這些文件的讀取權限。
-
CSP
網絡服務守護進程 (NSD
)。
注意:并非所有配置都需要此功能。
CSPnsd[Sv][.exe]
NSD
可以安裝在任何地方,并且Web
服務器不需要知道其物理位置,因為這兩點之間的通信是通過 TCP
(通常是端口 7038
)進行的。
NSD
需要讀取和寫入 Web Gateway
配置和日志文件的權限,這些文件通常在同一位置創建。
注意:出于安全原因,請勿將此模塊安裝在 Web
服務器可訪問的位置。此模塊不應與步驟 1、2 或 3 中列出的模塊共享位置。本文檔中描述的許多Web
服務器配置明確將此模塊從 Web
服務器可訪問的可訪問文件列表中排除。然而,將 NSD
物理安裝在文件系統的其他位置要安全得多。
-
Web Gateway
緩存,保存在持久存儲中。
如果可能,Web
網關會在永久存儲中定位大文件(例如大型 JavaScript
文件)的內容以及隨附的 HTTP
響應標頭。基本的控制信息(過期時間等)和所有緩存文件的索引都在共享內存扇區中。在這種架構中,每個緩存條目消耗少量的緩存空間(就內存使用而言)——每個條目很可能不超過一個緩存塊。
緩存內容存儲在 Web Gateway
臨時目錄中的 .dat
類型文件中,由安裝腳本直接放置在 Web Gateway
安裝目錄下。例如,在典型的 IIS
安裝中,該位置位于:C:\Inetpub\CSPGateway\temp
。該位置需要托管 Web
服務器工作進程的完整讀/寫/刪除權限。
將 Web
網關部署為獨立組件
在某些情況下,例如當想要在托管 Web
服務器的系統上找到 Web
網關以供一個或多個遠程 IRIS
實例使用時,可以通過以下方式將 Web
網關部署為獨立組件:
如安裝指南的準備安裝
IRIS
章節中的安裝類型所述,可以使用 IRIS 安裝程序單獨安裝Web Gateway
,方法是在Microsoft Windows
系統上選擇 Web 服務器安裝程序,或選擇在任何平臺上進行自定義設置,包括 Web 服務器網關組件。-
還可以使用獨立安裝程序獨立安裝
Web Gateway
。要獲取安裝程序,請使用以下WRC
下載頁面:https://wrc.intersystems.com/wrc/coDistGen.csp
。要僅顯示Web Gateway
套件,請在“名稱”列中鍵入web gateway
。與
IRIS
安裝程序一樣,Web Gateway
獨立安裝程序作為可執行文件提供,UNIX?
獨立安裝程序作為命令行腳本提供。Windows
獨立安裝程序的默認值假定您使用的是IIS Web
服務器,UNIX?
獨立安裝程序的默認值假定您使用的是Apache Web
服務器。如果有非典型的Web
服務器架構,或者想要自定義環境,應該仔細閱讀本文檔以了解配置選項。 InterSystems
提供的webgateway
容器映像包括Web Gateway
和Apache
或Nginx Web
服務器,從而為基于IRIS
的應用程序提供容器化Web
服務器。有關從webgateway
映像部署Web Gateway
容器的更多信息,請參閱在容器中運行 產品中的使用 Web Gateway Containe
、角色WS:Web Server
在InterSystems Cloud Manager
指南中的新選項卡中打開以及webgateway
:在使用InterSystems Kubernetes Operator
中定義Web
服務器節點。
請注意,需要為每個 Web
服務器單獨安裝 Web Gateway
。有關配置遠程 Web
服務器的詳細信息,請參閱將 Web
應用程序與遠程 Web
服務器結合使用。