概述

    安装管理 node

    如果是免费体验的 demo 环境,我们已经部署好了 node,可以直接跳过此步。

    按照我们单独交付的安装流程,新安装好的 node 会出现在「网关集群」下方的「候选节点」列表,我们可以选择批准加入某个集群。 一般来说,集群是按照地域来区分的,同一个机房的 node 节点会放到同一个集群。

    新建应用

    Edge 部署好了之后,我们可以开始创建应用。 比如我们新建一个包含 foo.test.com 应用,用这个域名去访问 node 的所有行为,都可以在这个应用里配置。

    快速上手 - 图2

    新建的应用没有任何配置,所有访问都会得到 404。

    比如

    体验 hello world

    应用内的主要配置都在「页面规则」里,比如我们可以用 Edge 语言快速实现 hello world。

    我们在 「此页面开始时的定制 Edge 语言规则」下面的编辑框里输入:

    1. say("hello world!");

    点击保存之后,右上角会出现「你有 1 个未发布变更 待发布」,这是保险起见,应用内的配置变更并不会立即生效,需要我们确认发布之后,才会真实的在 node 上生效。

    我们顺着「待发布」链接,进入发布页面,点击发布,很快(可能肉眼看不到变化)我们可以看到同步状态又回到 100%,意味着新的配置已经同步到 node 生效了。

    此时我们可以再来请求一次 node,我们将得到 hello world! 的输出:

    关于 Edge 语言的更多细节,请查看

    1. 反向代理到源站

    反向代理是 Edge 最基本的功能,比如我们可以配置如下规则:

    1. 点开「启用条件」
    2. URI 前缀匹配 字符串 /api/
    3. 点开「代理」
    4. 选择代理到上游,因为我们还没有上游配置,所以需要选择「新上游…」,开始新建上游
    5. 输入上游的名字:api-server,主机名:47.91.165.147,点击保存,一个新的上游就配置好了
    6. 此时已经自动回到新建规则的界面,点击「创建」

    \===>>>

    快速上手 - 图5

    \===>>>

    此时一个简单的反向代理规则就创建好了,同样的,发布之后即可生效。

    这个规则意味着,以 /api/ 为前缀的请求,将通过 http 协议回源到 的 80 端口,我们可以验证一下:

    1. $ curl -x 47.56.103.89:80 http://foo.test.com/api/xx
    2. recevied URI: /api/xx
    3. request from IP: 47.56.103.89
    4. server IP: 47.91.165.147

    备注: 是我们为 demo 创建的一个源站。

    启用 cache

    默认不会启用 cache,请求会直接转发到源站,然后再把源站的响应返回给请求方。 如果需要 cache,我们可以如下配置:

    1. 点编辑(上一步创建的规则)
    2. 点开缓存,默认使用 URI + 查询字符串 当做缓存键,我们可以不做改动,其余也保持默认值
    3. 点击保存

    快速上手 - 图7

    同样的,发布的即可生效,我们再来测试一下:

    是的,第二个请求已经命中了 Cache,不需要回源了,node 直接用缓存响应了。

    开启 WAF

    如果希望在网关 node 上开启应用防火墙,防御 SQL 注入、XSS 跨站脚本、 Web 服务器漏洞、木马等攻击,可以这样配置:

    1. 点开 WAF,默认会开启内置的 5 个规则集
    2. 拦截动作默认是「仅记录日志」,意味着如果发现有威胁的请求只会记录下来,不会真的拦截,这个比较适合调试阶段。
    3. 点击保存

    同样的,发布之后,我们再来测试一下

    1. $ curl -x 47.56.103.89:80 http://foo.test.com/api/root.exe
    2. recevied URI: /api/root.exe
    3. request from IP: 47.56.103.89
    4. server IP: 47.91.165.147

    看起来没有异常发生,我们再点开左侧的「WAF 日志」,可以看到一条可疑请求记录,其中原因为命中了关键词 root.exe。

    更多配置

    如上我们已经完成了基本的体验,如果还需要更多的配置,比如限速,设置回源的请求头,设置响应头,自定义错误页 等等,可以从规则的「动作部分」选择对应的动作,比如:

    快速上手 - 图9

    也可以参考

    多个规则

    目前为止,这个测试应用只配置一个规则,也即只定义了以 /api/ 为前缀的请求的行为。 同一个应用(域名)的不同请求方式,会有不同的行为,也是很常见的,此时我们需要为不同的请求方式,设置不同的行为,比如回源的上游,cache 策略,WAF 策略等等,很自然的,我们可以新建规则来完成配置。

    当有多个规则时,规则的条件部分有重叠会怎么办呢? 不用担心,很简单,只有一个原则: 页面上的显示顺序,即是规则的执行顺序,总是从上面的规则开始往下执行。 如果命中的规则开启了「跳过当前页余下规则」,则不会继续执行余下的规则。

    在规则列表里也可以清晰的看到:

    配置 SSL 证书

    以上体验都是用的 http,如果要通过 https 访问,我们需要配置 SSL 证书。 我们点击左侧栏的「SSL」,一共有三种方式来配置证书,我们来体验下最简单的情况(手动上传证书)

    1. 点击右上角「新证书」
    2. 选择「手动上传」
    3. 选择证书和私钥,可以选择本地文件,也可以直接复制输入证书/私钥的内容
    4. 保存

    快速上手 - 图11

    同样的,发布之后,我们再来测试一下

    另外还有两种配置证书的方式,

    1. 通过 Edge 内部集成的 Let’s Encrypt 来自动签发证书
    2. 直接使用已经在全局配置里上传过的全局证书,这个适合某些泛域名证书可以跨应用共享的场景

    请移步更多相关的文档

    探索更多功能

    至此我们已经体验了最基本的配置,Edge 里还有更多的基础常用功能,比如错误日志,指标统计,缓存刷新,权限控制等等,也还有更多的高级功能,比如适用于跨全球网络的「多层网络」回源,自定义动态指标统计,配置回滚等等,可以慢慢体验,有问题可以查看文档,或者直接与我们联系。

    欢迎扫下方二维码,关注「OpenResty 软件」,期待您与我们联系。