在 OpenResty Edge 中配置分布式 gRPC 代理

今天我将演示如何在 OpenResty Edge 中设置一个 gRPC 反向代理和负载均衡器。
在 OpenResty Edge 中配置分布式 gRPC 代理_第1张图片

gRPC 样本服务器和样本服务我们准备了一个 gRPC 样本服务器。该服务器的 IP 地址以 .166 结尾。监听的端口是 8080。这个是样本 gRPC 服务的 protobuf 定义文件。1cat hello_world.proto
在 OpenResty Edge 中配置分布式 gRPC 代理_第2张图片
这个服务根据 name 参数返回一个欢迎信息。
在 OpenResty Edge 中配置分布式 gRPC 代理_第3张图片
我们可以使用 grpcurl 命令行工具来检查这个服务的输出。这个工具可以发送 gRPC 请求,然后以 JSON 格式显示收到的响应。由于我们的 gRPC 服务器不支持 TLS 加密,这里要使用 “-plaintext” 选项。 将 “world” 作为 name 参数的值。输入上面提到的 gRPC 服务器的地址。最后,输入 gRPC 服务的名称。
在 OpenResty Edge 中配置分布式 gRPC 代理_第4张图片
发送请求。不出所料,返回了 “hello world”。
在 OpenResty Edge 中配置分布式 gRPC 代理_第5张图片
将 gRPC 服务器作为上游使用接下来,我们将使用 OpenResty Edge 后面的这个 gRPC 服务器作为上游。
在 OpenResty Edge 中配置分布式 gRPC 代理_第6张图片
像往常一样,让我们进入 OpenResty Edge 的 Admin Web 控制台。这就是我们控制台的样本部署。每个用户都有自己的本地部署。
在 OpenResty Edge 中配置分布式 gRPC 代理_第7张图片
我们可以继续使用之前的示例应用,test-edge.com。
在 OpenResty Edge 中配置分布式 gRPC 代理_第8张图片
进入该应用。
在 OpenResty Edge 中配置分布式 gRPC 代理_第9张图片
在应用中启用 HTTP 2gRPC 使用 HTTP 2 进行传输。HTTP 2 在 OpenResty Edge 中是默认启用的。
在 OpenResty Edge 中配置分布式 gRPC 代理_第10张图片
这里我将展示如何在 Edge 的应用程序设置中启用 HTTP 2。
在 OpenResty Edge 中配置分布式 gRPC 代理_第11张图片
选择 “Enabled” 选项。
在 OpenResty Edge 中配置分布式 gRPC 代理_第12张图片
保存我们的改动。
在 OpenResty Edge 中配置分布式 gRPC 代理_第13张图片
然后我们去 SSL 页面,确保 SSL 证书已经配置妥当。
在 OpenResty Edge 中配置分布式 gRPC 代理_第14张图片
可以看到我们在以前的教程中配置的证书。
在 OpenResty Edge 中配置分布式 gRPC 代理_第15张图片
为 gRPC 服务器创建上游跳转到 “Upstreams” 页面。
在 OpenResty Edge 中配置分布式 gRPC 代理_第16张图片
为我们的后端服务器创建一个新的上游。
在 OpenResty Edge 中配置分布式 gRPC 代理_第17张图片
我们给这个上游起个名字,“grpc backend”。
在 OpenResty Edge 中配置分布式 gRPC 代理_第18张图片
如果 gRPC 后端服务器启用了 TLS 加密功能,我们可以在这里选择 HTTPS。
在 OpenResty Edge 中配置分布式 gRPC 代理_第19张图片
在 gRPC 后端服务器的主机字段中填入前面提到的 IP 地址。
在 OpenResty Edge 中配置分布式 gRPC 代理_第20张图片
填写端口号:8080。
在 OpenResty Edge 中配置分布式 gRPC 代理_第21张图片
单击保存这个上游。
在 OpenResty Edge 中配置分布式 gRPC 代理_第22张图片
我们可以看到这个新的 “grpc backend” 上游已经成功被创建。
在 OpenResty Edge 中配置分布式 gRPC 代理_第23张图片
启用 gRPC 代理现在让我们创建一个新的页面规则来实际使用这个上游。
在 OpenResty Edge 中配置分布式 gRPC 代理_第24张图片
创建一个新的页面规则。
在 OpenResty Edge 中配置分布式 gRPC 代理_第25张图片
添加一个匹配 URI 前缀的规则条件。
在 OpenResty Edge 中配置分布式 gRPC 代理_第26张图片

在 OpenResty Edge 中配置分布式 gRPC 代理_第27张图片
输入这些由 “grpcurl” 使用的请求 URI 前缀。
在 OpenResty Edge 中配置分布式 gRPC 代理_第28张图片
在这里添加一个代理。
在 OpenResty Edge 中配置分布式 gRPC 代理_第29张图片
打开这个开关,启用 gRPC 代理。
在 OpenResty Edge 中配置分布式 gRPC 代理_第30张图片
选择我们刚刚创建的 gRPC 上游。
在 OpenResty Edge 中配置分布式 gRPC 代理_第31张图片

在 OpenResty Edge 中配置分布式 gRPC 代理_第32张图片
将这个页面规则插入到现存的其他规则之前。
在 OpenResty Edge 中配置分布式 gRPC 代理_第33张图片
保存这条页面规则。
在 OpenResty Edge 中配置分布式 gRPC 代理_第34张图片
可以看到刚加的规则已经出现在页面规则列表里。
在 OpenResty Edge 中配置分布式 gRPC 代理_第35张图片
像往常一样,需要发布一个新的版本来推送我们刚才的改动。
在 OpenResty Edge 中配置分布式 gRPC 代理_第36张图片
点击这个按钮。
在 OpenResty Edge 中配置分布式 gRPC 代理_第37张图片
发布!
在 OpenResty Edge 中配置分布式 gRPC 代理_第38张图片
新版本现在已经同步到所有的网关服务器上了。
在 OpenResty Edge 中配置分布式 gRPC 代理_第39张图片
现在,新的页面规则已经被推送到所有的网关集群和服务器。
在 OpenResty Edge 中配置分布式 gRPC 代理_第40张图片
这些配置的变化不需要服务器重载、重启或二进制升级。所以它是非常高效和可扩展的。
在 OpenResty Edge 中配置分布式 gRPC 代理_第41张图片
测试 gRPC 服务现在我们通过网关测试 gRPC 服务。
在 OpenResty Edge 中配置分布式 gRPC 代理_第42张图片
仍然使用 grpcurl 工具来访问 gRPC 服务。使用域名 test-edge.com 和端口 443。这将命中 OpenResty Edge 网关。这次我们没有指定 plaintext 选项,因为 Edge 网关支持 TLS 加密。
在 OpenResty Edge 中配置分布式 gRPC 代理_第43张图片
发送请求。不出所料,返回了 “hello world” 这个消息。
在 OpenResty Edge 中配置分布式 gRPC 代理_第44张图片
可以看到,gRPC 服务现在完全支持 TLS 加密来访问,尽管源服务器不支持。这就是我今天要演示的内容。如果你喜欢这个教程,请订阅这个博客网站和我们的 YouTube 频道 或 B 站频道。谢谢!

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

你可能感兴趣的:(在 OpenResty Edge 中配置分布式 gRPC 代理)