今天我来演示一下如何用 OpenResty Edge 配置最简单的反向代理和负载均衡器。

截图

我们在一个集中的地方管理所有的网关服务器节点及其配置,即 Edge Admin 网络控制台。

截图

创建示例应用

让我们进入 OpenResty Edge 的网络控制台。这是我们控制台的一个示例部署。每个用户都可以有自己的部署。

用我们的用户名和密码登录。

截图

其他认证方式也可配置。 现在登录。

截图

我们现在到了应用列表页面。已经有很多我们之前创建的应用。每个应用程序对应同一网关中的虚拟主机或虚拟服务器。

在这里,我们将通过点击“新建应用程序”按钮来创建一个新的应用。

截图

就创建一个 HTTP 类型的。这是默认的。

截图

我们为这个应用分配一个域名 test-edge.com

截图

我们可以添加更多的域名,包括通配符域名。

截图

在这个例子中,我们只关心 80 端口。

截图

让我们来创建这个应用!

截图

现在我们已进入这个新的应用。它是空的。

为新应用创建上游

让我们进入上游页面。

截图

显然,我们目前还没有定义任何上游。

点击“新建上游”按钮,为我们的后端服务器创建一个新的上游。

截图

给这个上游取个名字,比如说,my_backend

截图

为了简单起见,我们这里只用 HTTP 协议。

截图

我们最终可能还是会想启用 HTTPS 协议。

截图

这里我们需要后台服务器的 IP 地址。

截图

我们已经在这个 IP 地址 54.213.103.191 准备了一个后台服务器的样本。

截图

它只是简单地返回开源 OpenResty 服务器软件的默认主页。

后端可以是任何使用 HTTP 协议来通信的软件。

截图

现在我们可以填写后台服务器的主机字段了。

截图

保持 80 端口不变。

截图

未来我们可以通过点击“添加新的上游服务器”按钮在这个上游中添加更多的服务器。

截图

现在保存一下这个上游。

截图

我们可以看到这个 my_backend 上游已经有了。

截图

创建页面规则使用上游

现在让我们创建一个新的页面规则来实际利用这个上游。点击左侧栏的上游链接。

截图

我们目前没有定义任何页面规则。

创建一个新的页面规则。点击“新建规则”按钮。

截图

对于这个页面规则,我们不指定条件。这样,它将适用于所有传入的请求。

截图

我们可以添加条件将该代理页面规则限制在某些请求上。

截图

我们先禁用条件。

截图

我们在这里添加一个代理目标。

截图

选择一个上游。

截图

这里有我们新创建的上游。

截图

我们也有一些预先定义的全局上游。它们可以被所有的应用程序复用,包括这个应用。

截图

这里先选择我们的 my_backend 上游。

截图

我们的上游只有一台服务器。所以负载均衡策略在这里并不重要。

截图

我们就保持默认的轮询策略。

我们可能还想启用响应的缓存。我们将在另一个视频中介绍这个话题。

截图

最后,真正地创建这条规则。

截图

可以看到我们的代理页面规则已经列在页面规则列表中了。

截图

配置的发布

最后一步是进行新的配置发布。它将把我们尚未完成的更改推送到所有的网关服务器上。

截图

我们可以点击此处的链接去进行发布。

截图

我们有机会检查我们的变更,然后再推送出去。这是我们的第一个变更。

截图

这是我们增加的 my_backend 上游。

截图

这是我们的第二个变更。

截图

截图

这的确是我们的代理页面规则。

现在我们向所有的网关服务器发布配置更新。

截图

发送!

截图

我们可以实时观察配置同步进度。它被推送到整个网关网络。

截图

现在已经完全同步了。我们可以看到,这个示例部署在网关网络中有 13 台服务器。

我们在整个网络中进行增量的配置同步。

我们在请求粒度上实时更新配置。应用级别的配置更改都不需要服务器重载、重启或二进制升级。所以,即使你有很多不同的用户进行频繁的发布,它的可扩展性也很强。

截图

测试

我们也可以按集群来检查所有的网关服务器。

截图

这是我们在全球的样例部署。

截图

我们的用户可以自由地在任何地方部署他们的网关服务器,或者跨越不同的云和托管服务。

截图

本列显示各网关服务器的配置同步状态。

截图

我们可以选择旧金山附近的一个网关服务器来测试.

截图

它的公共 IP 地址是这个。

截图

我们直接复制这个 IP 地址来测试这个服务器。

在终端上,我们可以使用 curl 来测试这个旧金山网关服务器。

curl -sS -H 'Host: test-edge.com' 'http://138.68.231.133/' | less

截图

请注意,我们指定了 Host 请求头。这是因为同一台服务器要为许多不同的虚拟主机服务。

发送请求。

截图

结果和预期一样!我们得到了默认的 OpenResty 主页,就像直接访问后台服务器一样。

我们也可以通过 curl-I 选项检查响应头。

curl -I -H 'Host: test-edge.com' 'http://138.68.231.133/'

截图

有一些响应头是由 OpenResty Edge 网关软件生成的。

另外,我们也可以在本地的 /etc/hosts 文件中将 IP 地址绑定到主机名。那么我们就可以直接将网页浏览器指向这个域名了。

cat /etc/hosts

截图

在真实的设置中,我们应该将网关服务器的 IP 地址添加到我们的 DNS 名称服务器中。

dig test-edge.com

这里我们还没有配置这个域名的 DNS 记录。我们将在另一个视频中演示。

截图

OpenResty Edge 也可以同时作为一个权威的 DNS 服务器网络。

截图

当然,这是可选的。用户仍然可以选择使用第三方 DNS 名称服务器。这就是我今天要分享的内容。

截图

如果你喜欢这个教程,请订阅这个博客网站和我们的 YouTube 频道B 站频道。谢谢!

关于本文和关联视频

本文和相关联的视频都是完全由我们的 OpenResty Showman 产品从一个简单的剧本文件自动生成的。

关于作者

章亦春是开源 OpenResty® 项目创始人兼 OpenResty Inc. 公司 CEO 和创始人。

章亦春(Github ID: agentzh),生于中国江苏,现定居美国湾区。他是中国早期开源技术和文化的倡导者和领军人物,曾供职于多家国际知名的高科技企业,如 Cloudflare、雅虎、阿里巴巴, 是 “边缘计算“、”动态追踪 “和 “机器编程 “的先驱,拥有超过 22 年的编程及 16 年的开源经验。作为拥有超过 4000 万全球域名用户的开源项目的领导者。他基于其 OpenResty® 开源项目打造的高科技企业 OpenResty Inc. 位于美国硅谷中心。其主打的两个产品 OpenResty XRay(利用动态追踪技术的非侵入式的故障剖析和排除工具)和 OpenResty Edge(最适合微服务和分布式流量的全能型网关软件),广受全球众多上市及大型企业青睐。在 OpenResty 以外,章亦春为多个开源项目贡献了累计超过百万行代码,其中包括,Linux 内核、Nginx、LuaJITGDBSystemTapLLVM、Perl 等,并编写过 60 多个开源软件库。

关注我们

如果您喜欢本文,欢迎关注我们 OpenResty Inc. 公司的博客网站 。也欢迎扫码关注我们的微信公众号:

我们的微信公众号

翻译

我们提供了英文版原文和中译版(本文) 。我们也欢迎读者提供其他语言的翻译版本,只要是全文翻译不带省略,我们都将会考虑采用,非常感谢!