如何添加自定义响应头(使用 OpenResty Edge)
在本教程中,我们将展示如何用 OpenResty Edge 中添加自定义响应头,且无需重启或重新加载服务器进程。
将字符串作为值添加新的响应头
首先,打开 OpenResty Edge 网关控制台。这是我们用于演示的控制台部署。每个用户都有自己本地的部署。我们将再次使用域名为 “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® 项目创始人兼 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. 公司的博客网站 。也欢迎扫码关注我们的微信公众号:
翻译
我们提供了英文版原文和中译版(本文) 。我们也欢迎读者提供其他语言的翻译版本,只要是全文翻译不带省略,我们都将会考虑采用,非常感谢!