自定義錯誤頁面
有時候我們想設定自己的 404 或者 500 的錯誤頁面, 那麼就可以使用 OpenResty Edge 提供的這個功能來實現。
它屬於應用的 頁面規則
,我們直接新建一個頁面規則來看看如何使用。
動作
的下拉選單裡面有很多選項,我們拉到最下面的“其他”,從中選擇Customize error page。
自定義錯誤頁面有 4 個可以自定義的部分:
- 錯誤碼: 選擇對於哪些 HTTP 錯誤碼返回自定義的頁面,只能選擇頁面中列出的幾種 4xx 和 5xx 錯誤碼;
- 型別: 分為三種:HTML 原始碼、後端 URL 地址,以及選擇在全域性靜態檔案中已有的 HTML 檔案;
- 應答頭的 Content Type: 預設是
text/html; charset=utf8
,可以自己根據情況修改; - 應答體的內容: 根據型別選擇的不同,這裡也是填寫不同的內容。
下面是一個最簡單的示例,我們自定義 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 頁面。