自定義錯誤頁面

有時候我們想設定自己的 404 或者 500 的錯誤頁面, 那麼就可以使用 OpenResty Edge 提供的這個功能來實現。

它屬於應用的 頁面規則,我們直接新建一個頁面規則來看看如何使用。

動作的下拉選單裡面有很多選項,我們拉到最下面的“其他”,從中選擇Customize error page

自定義錯誤頁面有 4 個可以自定義的部分:

  1. 錯誤碼: 選擇對於哪些 HTTP 錯誤碼返回自定義的頁面,只能選擇頁面中列出的幾種 4xx 和 5xx 錯誤碼;
  2. 型別: 分為三種:HTML 原始碼、後端 URL 地址,以及選擇在全域性靜態檔案中已有的 HTML 檔案;
  3. 應答頭的 Content Type: 預設是 text/html; charset=utf8,可以自己根據情況修改;
  4. 應答體的內容: 根據型別選擇的不同,這裡也是填寫不同的內容。

下面是一個最簡單的示例,我們自定義 404 的錯誤應答體為字串 hello

這個規則我們不開啟條件,直接點選右下方的建立按鈕。

那麼這個限制規則到底生效沒有呢?我們來驗證下。

我們首先要進入 釋出 頁面,把這個規則同步到所有閘道器的節點中去。

如果釋出可以檢視釋出,這裡不再贅述。

然後再開啟 shell 來模擬客戶端的訪問。

$ curl -i -H 'host: rewrite-rule-test.com' 52.43.45.19/404.html
HTTP/1.1 404 Not Found
Server: openresty+
Date: Fri, 31 Aug 2018 09:16:39 GMT
Content-Type: text/html; charset=utf8
Transfer-Encoding: chunked
Connection: keep-alive

hello

應答體果然是我們設定的 hello,而不是預設的 404 頁面。