自定义错误页面

有时候我们想设定自己的 404 或者 500 的错误页面, 那么就可以使用 OpenResty Edge 提供的这个功能来实现。

它属于应用的页面规则,我们直接新建一个页面规则来看看如何使用。

动作的下拉列表里面有很多选项,我们拉到最下面的 “其他”,从中选择Customize error page

自定义错误页面 - 图1

自定义错误页面 - 图2

自定义错误页面有 4 个可以自定义的部分:

  1. 错误码: 选择对于哪些 HTTP 错误码返回自定义的页面,只能选择页面中列出的几种 4xx 和 5xx 错误码;
  2. 类型: 分为三种:HTML 源码、后端 URL 地址,以及选择在全局静态文件中已有的 HTML 文件;
  3. 应答头的Content Type: 默认是text/html; charset=utf8,可以自己根据情况修改;
  4. 应答体的内容: 根据类型选择的不同,这里也是填写不同的内容。

下面是一个最简单的示例,我们自定义 404 的错误应答体为字符串hello

自定义错误页面 - 图3

这个规则我们不开启条件,直接点击右下方的创建按钮。

自定义错误页面 - 图4

那么这个限制规则到底生效没有呢?我们来验证下。

我们首先要进入发布页面,把这个规则同步到所有网关的节点中去。

如果发布可以查看发布,这里不再赘述。

然后再打开 shell 来模拟客户端的访问。

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

应答体果然是我们设置的hello,而不是默认的 404 页面。