通过 OpenResty Edge 在网站中强制使用 SSL
今天,我想展示如何在你的网站上强制使用 SSL。也就是说,将所有用户的 HTTP 请求重定向到对应的 HTTPS。
创建页面规则重定向 HTTP 请求
像往常一样,让我们进入 OpenResty Edge 的 Admin Web 控制台。这是我们的控制台的样本部署。每个用户都有自己的本地部署。
这一次我们继续使用 test-edge.com 域名的样本应用。
进入这个应用。
再进入页面规则页面。
创建一个新的页面规则。
我们为所有的 HTTP 请求启用一个规则条件。
先来看看我们可以选择的所有变量。
选择 Scheme
。
保持字符串等号运算符不动。
再选择 http
作为值。
然后对于规则的动作部分,我们可以配置一个 301 重定向动作。
在这里有很多的动作。
所以最好直接搜索一下 Redirect
动作。
选择它。
我们保持当前的请求 URI 不变。
同时也继承当前请求的 URI 参数或查询字符串。
不过我们需要改变新请求的 Scheme。
选择 https
。
我们可以在这里选择 301 重定向来代替。
意味着是“永久重定向”。
我们需要确保这个规则在任何现有的正常规则之前运行。
确保当此规则被匹配时,我们跳过任何后续的规则。
对于这条规则来说,虽然这并不是真的必要,但是,当我们想立即停止处理请求时,明确说明总是一个好主意。
现在创建这个规则。
这里可以看到新的页面规则,将所有的 HTTP 请求重定向到它们对应的 HTTPS 请求。
像往常一样,我们需要发布来推送这个新的页面规则。
点击这个按钮。
发布!
已经完全同步。
现在,新的页面规则已经被推送到所有的网关集群和服务器。
我们的配置更改不需要重新加载服务器、重启或二进制升级服务器进程。所以它是非常有效和可扩展的。
测试页面规则
让我们打开一个新的浏览器标签页,通过 HTTP
访问 test-edge.com 网站。
我们可以看到它确实变成了 HTTPS
。注意浏览器地址栏中的小锁图标。
在终端上,我们也可以用 curl
进行测试。
curl -Ss -I http://test-edge.com/
确实是一个 301 重定向,并使用 HTTPS 协议。
也可以来尝试一个更复杂的 URI 和查询字符串。
curl -Ss -I 'http://test-edge.com/foo/bar?a=32&b=56'
我们可以看到它仍然被重定向到 HTTPS
。
而且 URI 和查询字符串也被保留下来了。
关于 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. 公司的博客网站 。也欢迎扫码关注我们的微信公众号:
翻译
我们提供了英文版原文和中译版(本文) 。我们也欢迎读者提供其他语言的翻译版本,只要是全文翻译不带省略,我们都将会考虑采用,非常感谢!