基於 YAML 檔案的 OpenResty Edge 配置示例

基於 YAML 檔案的 OpenResty Edge 配置示例。

全域性配置

globalconfigs.yaml 檔案中需位於您配置目錄的根目錄中,並且名稱固定為 globalconfigs.yaml。 其中包含 訪問日誌格式、自定義共享記憶體區、全域性變數 等配置。 在 OpenResty Edge 中,您可以配置多個訪問日誌格式。為此,訪問日誌格式以陣列形式進行表示。

全域性 Basic 認證使用者組

YAML 檔案中可以包含一個或多個全域性基本認證組。 此配置定義了兩個全域性基本認證組,每個組包含三個使用者。

全域性 IP 列表

YAML 檔案中可以包含一個或多個全域性 IP 列表。 此配置定義了兩個全域性 IP 列表,每個列表包含多個 IPv4 地址。 請注意,當前並未支援 IPv6 地址。

全域性上游

YAML 檔案中可以包含一個或多個全域性上游配置。 每個全域性上游配置是一個鍵值對,其中鍵是上游名稱,值是一個包含以下引數的物件: 健康檢查配置包含多個引數,用於定義如何進行健康檢查。主要引數包括: 此配置定義了三個全域性上游,分別啟用了不同的設定和健康檢查配置。

全域性 Kubernetes 上游

YAML 檔案中可以包含一個或多個全域性 Kubernetes 上游配置。 每個全域性 Kubernetes 上游配置都是一個鍵值對,其中鍵是上游名稱,值是一個包含以下引數的物件: 健康檢查配置包含多個引數,用於定義如何進行健康檢查。

全域性頁面模板

globalpagetemplates.yaml 檔案中可以包含一個或多個全域性頁面模板。 每個全域性頁面模板是一個包含以下引數的物件: 此配置定義了兩個全域性頁面模板,分別用於 403 和 404 錯誤頁面。

全域性靜態檔案

globalstaticfiles.yaml 檔案包含全域性靜態檔案和目錄的配置資訊,而實際的檔案內容儲存在 files/ 目錄下。

全域性自定義動作

YAML 檔案中可以包含一個或多個全域性自定義動作。 可參考 頁面規則 - 條件 可參考 頁面規則 - 動作 此配置定義了三個全域性自定義動作,每個動作都有特定的條件和要執行的動作。

全域性 Lua 模組

全域性 Lua 模組是一種強大的機制,用於實現複雜的邏輯功能。 本地配置中的 Lua 模組以 .lua 作為副檔名,而非 .yaml,並且必須存放在配置目錄下名為 globalluamodules 的專用資料夾中。

HTTP 應用

在舊版本的 edge2yaml 命令列工具中,建立應用時會自動選擇應用所需的訪問日誌格式,並預設將指定域名的泛域名新增到應用中。為了提供更好的靈活性和可配置性,新版本的命令列工具不再自動選擇,而是透過配置檔案進行指定。

應用 Basic 認證組

每個 yaml 檔案包含一個或者多個應用基本認證組的配置。 每個基本認證組配置是一個包含以下引數的物件: 此配置定義了一個名為 ‘hello’ 的基本認證組,包含三個使用者。

應用上游

YAML 檔案中可以包含一個或多個應用上游配置。 每個應用上游配置是一個鍵值對,其中鍵是上游名稱,值是一個包含以下引數的物件: 健康檢查配置包含多個引數,用於定義如何進行健康檢查。主要引數包括: 此配置定義了兩個應用上游,一個使用 TCP 健康檢查,另一個使用 HTTPS 健康檢查。

應用 Kubernetes 上游

YAML 檔案中可以包含一個或多個應用 Kubernetes 上游配置。 每個應用 Kubernetes 上游配置是一個鍵值對,其中鍵是上游名稱,值是一個包含以下引數的物件: 健康檢查配置包含多個引數,用於定義如何進行健康檢查。

應用 IP 列表

YAML 檔案中可以包含一個或多個應用 IP 列表。 每個 IP 列表是一個包含以下引數的物件: 此配置定義了五個 IP 列表,每個列表包含兩個 IPv4 地址。

應用使用者變數

YAML 檔案中可以包含一個或多個應用使用者變數定義。 每個使用者變數是一個包含以下引數的物件: 此配置定義了五個不同型別的使用者變數。

應用 WAF 白名單

YAML 檔案中可以包含一個或多個應用 WAF 白名單配置。 每個 WAF 白名單配置是一個包含以下引數的物件: 可參考 頁面規則 - 條件 此配置定義了兩個 WAF 白名單規則,使用規則集名稱及規則名稱來指定要忽略的規則。

頁面規則

在一個 YAML 配置檔案中,您可以定義多個頁面規則。 請注意 content 和 proxy 不應該在同一條頁面規則中使用。

頁面規則 - 條件

頁面規則條件配置中允許定義多個條件,它們之間是邏輯上的與關係。這意味著僅當所有條件均滿足時,頁面規則才會被觸發,並執行規則所定義的動作。這些動作可以是頁面規則動作、Web 應用防火牆(WAF)、代理、快取等。 請注意,在頁面規則配置中,雖然條件不是必需的,但至少需要定義一個動作。

頁面規則 - 動作

limitkey 或 limitkeys 的 name 引數的可選值: client-addr:客戶端地址 uri:請求的 URI uri-arg:請求引數 req-cookie:請求中的 Cookie req-header:請求頭 first-x-forwarded-addr:請求頭中.

Web 應用防火牆 (WAF)

Web 應用程式防火牆(WAF)旨在保護 Web 應用程式免遭多種網路攻擊,如跨站指令碼攻擊(XSS)、SQL 注入等威脅。 您可以選擇使用內建規則集或自定義 WAF 規則集。

頁面規則 - 代理

在 OpenResty Edge 的頁面規則中,proxy 部分用於配置請求代理的行為。這包括上游伺服器的選擇、負載均衡策略、超時設定等。 proxy 配置是頁面規則中的一個可選部分。

頁面規則 - 快取

本文件介紹瞭如何透過啟用頁面規則中的快取選項對靜態資源或較少變動的內容進行快取操作。 利用快取可顯著提升資源的訪問速度並最佳化終端使用者的體驗。 引數 cachekey 是用於生成標識快取的 key 的陣列。

頁面規則 - 內容

本文件介紹瞭如何透過啟用頁面規則中的“內容”選項來使用靜態檔案。 在第一條頁面規則中,當請求 URI 為 /file1 時,將直接返回靜態檔案 dir1 目錄下的 setup.sh 檔案中的內容。

Kubernetes 叢集

每個 yaml 檔案中,皆可包含一個或多個 K8s 叢集。 以上配置定義 更新配置到 OpenResty Edge 中: 從 OpenResty Edge 中匯出配置: 示例中均使用 -l k8s 來指定只匯入/匯出 Kubernetes 叢集相關的配置。

傳送郵件

本文件介紹如何配置郵件傳送者的資訊。配置檔案可以位於以下兩個位置之一: 在配置目錄的根目錄中,並以 email.yaml 命名。 在任意其他目錄中,以自定義名稱命名,然後透過 -e 或 –email-config-file 選項進行指定。

使用者管理

從 1.2.55 版本的命令列工具開始,我們增加了使用者管理的支援。該功能可以檢查 YAML 配置檔案中的使用者資訊,當用戶不存在時,會在 Edge Admin 中自動建立該使用者。此外,在使用者建立完成後,還支援向該使用者傳送郵件通知。