全部课程
在OCI上实现URL重定向的方法
发布时间: 2021-06-17
在OCI上实现URL重定向的方法,当从当前页面跳转到新的URL、域名已更换、或联合网站时,就会用到重定向。URL重定向告诉用户你希望他们看的内容,而不是他们要求看到的内容。
使用URL重定向功能,可以将不安全的连接重定向到安全的HTTPS,实现域别名,即使页面已下线但还可以保持旧链接有效,所有这些都增强了用户体验。
Oracle Cloud Infrastructure提供两种实现URL重定向的方法:
> 负载平衡器URL重定向
把传入的HTTP请求服务重定向由Oracle云基础设施负载平衡提供的服务。
> 全局URL重定向
使用Oracle云基础设施托管的权威DNS,重定向面向公众域名的服务。使用DNS,可以在任何DNS主机名上放置一个HTTP重定向。对主机名的任何请求都被转发到一个HTTP重定向服务器,该服务器将URL重定向到最终用户。Oracle云基础设施维护了大量地理分布的重定向服务器来执行此重定向。
对希望访问DNS域名的用户,不应该通过采取连接到区域负载平衡器来实现重定向,这些企业应该采用全球部署的DNS重定向服务。例如,东京的用户可以从日本境内的重定向服务器完成重定向,而不是连接到弗吉尼亚州Ashburn的负载平衡器,这为用户节省大量时间。如果企业希望在区域级别上完成重定向,那可以使用企业私有网络来配置负载均衡器重定向服务。
重定向是通过向用户传递一个HTTP响应状态代码来实现的,该代码指示一个新的地址来满足用户的请求。可以设置301代码表示永久重定向,设置302代码表示临时重定向,或者设置其他重定向代码。这些代码有助于控制应用程序处理哪些用户请求。甚至可以使用这些状态代码来帮助用户访问你的站点—例如,301重定向告诉用户某个页面已经永久地移动到其他位置。
应用场景
> 将不安全的客户请求重定向到HTTPS
希望用户通过HTTPS访问你的网站。要维护最高级别的安全性,需要将网站从HTTP更新到HTTPS协议,然后将所有未加密的HTTP通信重定向到加密的HTTPS。
> 在执行维护时临时重定向流量
希望在网站运维或故障时避免用户不满意。例如,你有多个正在进行负载平衡的web服务器,但是需要立即对所有服务器进行更改,并且希望公共用户临时重定向到位于另一个URL上的另一个网站。当服务器停止工作时,你可以在浏览器上用“正在构建的Web页面”消息通知用户。
> 将整个域移动到另一个域
希望用户使用旧的url并仍然获得最新的内容。举例如下:
公司A已被公司B收购。当用户使用公司A的域名浏览时,希望用户被重定向到公司B的域名。公司A拥有example.net,公司B拥有example.com,希望example.net的所有HTTP流量总是重定向到example.com。这个映射是一对一的,还可以使用通配符映射。
> 将FQDN重定向到特定的URL
不希望用户必须记住一个很长的URL,而只是子域名。例如,不希望用户必须记住冗长的url才能在我们的网站上浏览产品,将product.example.com设置为重定向到https://www.example.com/product/login。
> 将子域重定向到具有端口号的URL
用户希望在不每次都输入端口号的情况下访问他们的服务。例如,camera.example.com可以重定向到http://office.example.com:8080。
通用架构
下图显示了当用户的URL被负载均衡器重定向时发生的步骤,负载均衡器有一个与之关联的DNS名称(虚线)或作为全局DNS机群的一部分的独立服务器(实线)。
用户的浏览器启动对ISP递归解析器的DNS查询。
递归名称服务器导航到权威DNS(oracle.DNSDemos.com),最终将请求发送到OCI DNS(该域的权威DNS)。
ISP递归解析器接收HTTP重定向服务器(redirect.waf.oci.oraclecloud.net)的CNAME/A记录。ISP递归解析器重复这个过程,直到它有一个可供应客户机的IP地址。
ISP解析器将IP地址发送给客户端。此时,DNS解析就完成了。
浏览器(客户端)使用其IP地址向HTTP重定向服务器redirect.waf.oci.oraclecloud.net发送一个HTTP请求。如果是负载平衡器,则由负载平衡器处理重定向。
在这两种情况下,重定向服务器或负载平衡器都使用一个HTTP响应(301重定向)重定向到新目标服务器(http://www.oracle.com)。
注意:如果在负载均衡器上配置URL重定向并输入了IP地址,那就会绕过DNS,只有步骤5和步骤6。
负载平衡器URL重定向
如果你想负载均衡后端服务,并且重定向HTTP(S)流量,可以使用基于负载平衡器的URL重定向。可以直接在负载平衡器上配置这些重定向,这会消除在后端服务中执行重定向所需的额外资源。负载平衡器支持HTTP和HTTPS之间的所有排列组合。相比之下,DNS URL重定向不管理证书,因此只能从HTTP重定向到HTTPS,而不能双向。
> 在负载平衡器上配置URL重定向
下图的例子显示了在负载均衡器上配置一个URL重定向规则,将HTTP流量重定向到HTTPS,响应代码为301,永久移动/videos到新地址,保持查询与原始请求相同。
创建好规则集,把它添加到Listener。于是,当在浏览器中输入http:///时,页面将被重定向到https:///video。
配置全球URL重定向
全球URL重定向允许将已定义主机名上的HTTP通信重定向到一个HTTP(S)目的地,如果范围是全球的且不限于特定的可用域或区域,则可以使用选项定义路径和端口。当用户访问面向外部的“Internet DNS”时,请使用此选项。使用此选项只重定向面向公众的域名,而不是基于负载平衡器的URL重定向,后者可以在私有网络内重定向。
> 创建和管理DNS Zone
可以手动创建区域或导入Zone文件。为了与Oracle的名称服务器关联,将覆盖导入Zone的SOA和NS记录。重定向只能用于对主DNS使用OC DNS的Zone,OCI控制对Zone文件的修改。重定向不能用于次DNS服务器,因为OCI只有一个Zone的只读副本,无法添加服务。
> 使用DNS创建HTTP重定向
下图的例子展示了HTTP重定向配置,将子域oracle.DNSDemos.com重定向到http://www.oracle.com:80,响应代码为301。
验证URL重定向
在你的电脑上打开一个终端窗口,并运行以下命令,检查URL重定向配置是否成功:
$ curl -s -I oracle.DNSDemos.com
HTTP/1.1 301 Moved Permanently
Via: 1.1 10.188.53.5 (McAfee Web Gateway7.8.2.13.0.30003)
Date: Mon, 11 May 2020 07:13:53 GMT
Server: ZENEDGE
Location: HTTP://www.oracle.com:80
上一篇: eBackup备份组网
下一篇: 本地与OCI的网络连接方式