今天我将演示如何为 OpenResty Edge 中的应用配置访问日志格式。

Embeded image

在全局配置页面配置访问日志格式

像往常一样,让我们进入 OpenResty Edge 的 Admin Web 控制台。这是我们的控制台的样本部署。每个用户都有自己的本地部署。

Screenshot

我们先来配置一下访问日志的格式。

Screenshot

转到 Global Config 页面。

Screenshot

当前的全局配置属于名为 “default” 的网络分区。

Screenshot

直接跳到设置日志的部分。

Screenshot

这里是默认使用的日志文件目录。如果想修改这个目录,你必须确保修改以后的目录在所有网关服务器上都存在。

Screenshot

这是名为 “main” 的默认访问日志格式。

Screenshot

这个格式记录了很多信息,如远程 IP 地址、请求体、上游状态等。

Screenshot

“As default” 是指将这个日志格式设置为该网络分区的默认访问日志格式。在应用中,如果我们不做任何改动,默认就是使用这个日志格式。

Screenshot

如果你想添加一个新的格式,你可以点击这个按钮。

Screenshot

在本教程中,我们使用这个现有的格式 “tutorial-example”。

Screenshot

它记录了请求耗时、远程 IP 地址、HTTP 主机和请求体。

Screenshot

为示例应用配置访问日志

现在让我们为应用配置这种访问日志格式。

Screenshot

转到应用列表页。

Screenshot

我们可以继续使用之前的示例应用,test-edge.com。

Screenshot

进入该应用。

Screenshot

进入设置页面。

Screenshot

之前我们为这个应用配置了名为 “default” 的网络分区。

Screenshot

可以看到该应用默认使用全局配置的默认访问日志格式。

Screenshot

在使用默认的日志格式时,我们不能改变访问日志的文件名。

Screenshot

现在来改一下使用的日志格式。我们选择使用名为 “tutorial-example” 的访问日志格式。

Screenshot

现在可以改动日志文件名了。我们把它改为 “example.access.log”。

Screenshot

保存这个改动。

Screenshot

像往常一样,我们需要发布来推送这个新改动。

Screenshot

点击这个按钮。

Screenshot

发布!

Screenshot

改动现在已经同步到所有的网关服务器。

Screenshot

现在,刚才的改动已经被推送到所有的网关集群和服务器。

Embeded video

Embeded video

Embeded video

我们的配置变化不需要服务器重载、重启或二进制升级。所以它是非常高效和可扩展的。

Embeded image

测试访问日志

在之前的教程中我们已经定义了一个上游。

Screenshot

这个 my_backend 上游定义了一个后端服务器。

Screenshot

我们也已经定义了一个页面规则。

Screenshot

这个页面规则设置了一个反向代理到我们刚才看到的上游。

Screenshot

所以当我们访问应用时,会有上游的内容返回。

现在让我们看看我们的应用程序属于哪个网关服务器。

转到网关集群页面。

Screenshot

我们的应用属于名为 “default” 的网络分区。

Screenshot

可以看到有许多网关集群属于名为 “default” 的网络分区。

Screenshot

我们选择其中一个来查看访问日志信息。

Screenshot

首先让我们通过访问应用来生成访问日志消息。

在终端上,我们通过 curl 发送一个请求。

curl -sSI -H 'Host: test-edge.com' http://52.53.251.226/

Screenshot

访问成功!

Screenshot

然后,检查一下访问日志信息。我们登录到 OpenResty Edge 网关服务器。

Screenshot

检查 example.access.log 文件中的最后一条访问日志信息。

Screenshot

日志文件目录是在全局配置中定义的。

Screenshot

而日志文件名是在我们的应用中定义的。

Screenshot

运行该命令。

Screenshot

我们可以看到访问日志信息包含了请求耗时。

Screenshot

和远程 IP 地址。

Screenshot

HTTP 主机。

Screenshot

和请求体。

Screenshot

可以看到,访问日志信息与访问日志格式 “tutorial-example” 相匹配。

Screenshot

顺便说一下,除了在设置页面为应用配置访问日志格式外,我们还可以在创建新的应用时进行配置。

回到应用列表页。

Screenshot

点击新的应用按钮,看看在哪里可以设置访问日志格式。

Screenshot

我们可以在这里设置访问日志格式。

Screenshot

关于 OpenResty Edge

OpenResty Edge 是一款专为微服务和分布式流量架构设计的全能型网关软件,由我们自主研发。它集流量管理、私有 CDN 构建、API 网关、安全防护等功能于一体,帮助您轻松构建、管理和保护现代应用程序。OpenResty Edge 拥有业界领先的性能和可扩展性,能够满足高并发、高负载场景下的苛刻需求。它支持调度 K8s 等容器应用流量,并可管理海量域名,轻松满足大型网站和复杂应用的需求。

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

关于作者

章亦春是开源 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. 公司的博客网站 。也欢迎扫码关注我们的微信公众号:

我们的微信公众号

翻译

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