如何添加自定义响应头(使用 OpenResty Edge)
在本教程中,我们将展示如何用 OpenResty Edge 中添加自定义响应头,且无需重启或重新加载服务器进程。
将字符串作为值添加新的响应头
让我们进入 OpenResty Edge 的 Admin Web 控制台。这就是我们控制台的样例部署。每个用户都有自己的本地部署。我们可以继续使用之前的示例应用,“test-edge.com”。
进入该应用。
首先进入 “Page Rules” 页面。
点击此处添加新的页面规则。
添加一个动作。
我们选择 “Add response header”。
响应头有两个部分,它的名称和对应的值。
将响应头命名为 “X-TEST-EXTRA-HEADER”。
对于此处的值,您可以选择使用字符串或内置变量,我们先用字符串进行测试。
输入 “hello world”。
确保这个规则在任何现有的正常规则之前运行。
保存这个页面规则。
像往常一样,需要发布一个新的版本来推送我们刚才的改动。
发布!
新版本现在已经同步到所有的网关服务器上了。
现在,新的页面规则已推送到所有网关集群和服务器了。
这些配置的变化,不需要服务器重新加载、重启,或二进制升级。所以它是非常高效和可扩展的。
让我们在网关服务器上测试一下。
我们复制这个旧金山网关服务器的 IP 地址。
然后在终端上进行测试。
这里有我们添加的 “X-TEST-EXTRA-HEADER” 响应头。
以 “System Hostname” 作为值的内置变量
接下来,让我们试一下使用内置变量作为响应头的值。
编辑这个页面规则。
选择内置变量作为响应头的值。
目前我们为内置变量提供了两种选项。一种是 “Request Header”,这意味着您可以检索请求信息。您需要按名称指定 “Request Header”,例如 “Origin”、“Referer” 等。
另外一种是 “System Hostname”,它是我们之前设置好的网关服务器的名称。
我们来试试 “System Hostname”。
保存它。
和刚刚一样,我们需要发布来推送这个新的页面规则。
发布!
现在它已经被推送到所有的网关集群和服务器。
首先,我们可以检查之前服务器的主机名。
此网关服务器的主机名如下。
然后切换到终端。
“X-TEST-EXTRA-HEADER” 响应头的值,已更改为我们刚刚看到的主机名。
让我们测试另一个网关服务器,例如这个位于法兰克福的服务器,其主机名如下。
再次切回到终端。
现在响应头的值,是法兰克福服务器的主机名。
关于 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、LuaJIT、GDB、SystemTap、LLVM、Perl 等,并编写过 60 多个开源软件库。
关注我们
如果您喜欢本文,欢迎关注我们 OpenResty Inc. 公司的博客网站 。也欢迎扫码关注我们的微信公众号:
翻译
我们提供了英文版 原文和中译版(本文) 。我们也欢迎读者提供其他语言的翻译版本,只要是全文翻译不带省略,我们都将会考虑采用,非常感谢!