全部課程
在OCI上實(shí)現(xiàn)URL重定向的方法
發(fā)布時(shí)間: 2021-06-17
在OCI上實(shí)現(xiàn)URL重定向的方法,當(dāng)從當(dāng)前頁面跳轉(zhuǎn)到新的URL、域名已更換、或聯(lián)合網(wǎng)站時(shí),就會(huì)用到重定向。URL重定向告訴用戶你希望他們看的內(nèi)容,而不是他們要求看到的內(nèi)容。
使用URL重定向功能,可以將不安全的連接重定向到安全的HTTPS,實(shí)現(xiàn)域別名,即使頁面已下線但還可以保持舊鏈接有效,所有這些都增強(qiáng)了用戶體驗(yàn)。
Oracle Cloud Infrastructure提供兩種實(shí)現(xiàn)URL重定向的方法:
> 負(fù)載平衡器URL重定向
把傳入的HTTP請(qǐng)求服務(wù)重定向由Oracle云基礎(chǔ)設(shè)施負(fù)載平衡提供的服務(wù)。
> 全局URL重定向
使用Oracle云基礎(chǔ)設(shè)施托管的權(quán)威DNS,重定向面向公眾域名的服務(wù)。使用DNS,可以在任何DNS主機(jī)名上放置一個(gè)HTTP重定向。對(duì)主機(jī)名的任何請(qǐng)求都被轉(zhuǎn)發(fā)到一個(gè)HTTP重定向服務(wù)器,該服務(wù)器將URL重定向到最終用戶。Oracle云基礎(chǔ)設(shè)施維護(hù)了大量地理分布的重定向服務(wù)器來執(zhí)行此重定向。
對(duì)希望訪問DNS域名的用戶,不應(yīng)該通過采取連接到區(qū)域負(fù)載平衡器來實(shí)現(xiàn)重定向,這些企業(yè)應(yīng)該采用全球部署的DNS重定向服務(wù)。例如,東京的用戶可以從日本境內(nèi)的重定向服務(wù)器完成重定向,而不是連接到弗吉尼亞州Ashburn的負(fù)載平衡器,這為用戶節(jié)省大量時(shí)間。如果企業(yè)希望在區(qū)域級(jí)別上完成重定向,那可以使用企業(yè)私有網(wǎng)絡(luò)來配置負(fù)載均衡器重定向服務(wù)。
重定向是通過向用戶傳遞一個(gè)HTTP響應(yīng)狀態(tài)代碼來實(shí)現(xiàn)的,該代碼指示一個(gè)新的地址來滿足用戶的請(qǐng)求??梢栽O(shè)置301代碼表示永久重定向,設(shè)置302代碼表示臨時(shí)重定向,或者設(shè)置其他重定向代碼。這些代碼有助于控制應(yīng)用程序處理哪些用戶請(qǐng)求。甚至可以使用這些狀態(tài)代碼來幫助用戶訪問你的站點(diǎn)—例如,301重定向告訴用戶某個(gè)頁面已經(jīng)永久地移動(dòng)到其他位置。
應(yīng)用場(chǎng)景
> 將不安全的客戶請(qǐng)求重定向到HTTPS
希望用戶通過HTTPS訪問你的網(wǎng)站。要維護(hù)最高級(jí)別的安全性,需要將網(wǎng)站從HTTP更新到HTTPS協(xié)議,然后將所有未加密的HTTP通信重定向到加密的HTTPS。
> 在執(zhí)行維護(hù)時(shí)臨時(shí)重定向流量
希望在網(wǎng)站運(yùn)維或故障時(shí)避免用戶不滿意。例如,你有多個(gè)正在進(jìn)行負(fù)載平衡的web服務(wù)器,但是需要立即對(duì)所有服務(wù)器進(jìn)行更改,并且希望公共用戶臨時(shí)重定向到位于另一個(gè)URL上的另一個(gè)網(wǎng)站。當(dāng)服務(wù)器停止工作時(shí),你可以在瀏覽器上用“正在構(gòu)建的Web頁面”消息通知用戶。
> 將整個(gè)域移動(dòng)到另一個(gè)域
希望用戶使用舊的url并仍然獲得最新的內(nèi)容。舉例如下:
公司A已被公司B收購(gòu)。當(dāng)用戶使用公司A的域名瀏覽時(shí),希望用戶被重定向到公司B的域名。公司A擁有example.net,公司B擁有example.com,希望example.net的所有HTTP流量總是重定向到example.com。這個(gè)映射是一對(duì)一的,還可以使用通配符映射。
> 將FQDN重定向到特定的URL
不希望用戶必須記住一個(gè)很長(zhǎng)的URL,而只是子域名。例如,不希望用戶必須記住冗長(zhǎng)的url才能在我們的網(wǎng)站上瀏覽產(chǎn)品,將product.example.com設(shè)置為重定向到https://www.example.com/product/login。
> 將子域重定向到具有端口號(hào)的URL
用戶希望在不每次都輸入端口號(hào)的情況下訪問他們的服務(wù)。例如,camera.example.com可以重定向到http://office.example.com:8080。
通用架構(gòu)
下圖顯示了當(dāng)用戶的URL被負(fù)載均衡器重定向時(shí)發(fā)生的步驟,負(fù)載均衡器有一個(gè)與之關(guān)聯(lián)的DNS名稱(虛線)或作為全局DNS機(jī)群的一部分的獨(dú)立服務(wù)器(實(shí)線)。
用戶的瀏覽器啟動(dòng)對(duì)ISP遞歸解析器的DNS查詢。
遞歸名稱服務(wù)器導(dǎo)航到權(quán)威DNS(oracle.DNSDemos.com),最終將請(qǐng)求發(fā)送到OCI DNS(該域的權(quán)威DNS)。
ISP遞歸解析器接收HTTP重定向服務(wù)器(redirect.waf.oci.oraclecloud.net)的CNAME/A記錄。ISP遞歸解析器重復(fù)這個(gè)過程,直到它有一個(gè)可供應(yīng)客戶機(jī)的IP地址。
ISP解析器將IP地址發(fā)送給客戶端。此時(shí),DNS解析就完成了。
瀏覽器(客戶端)使用其IP地址向HTTP重定向服務(wù)器redirect.waf.oci.oraclecloud.net發(fā)送一個(gè)HTTP請(qǐng)求。如果是負(fù)載平衡器,則由負(fù)載平衡器處理重定向。
在這兩種情況下,重定向服務(wù)器或負(fù)載平衡器都使用一個(gè)HTTP響應(yīng)(301重定向)重定向到新目標(biāo)服務(wù)器(http://www.oracle.com)。
注意:如果在負(fù)載均衡器上配置URL重定向并輸入了IP地址,那就會(huì)繞過DNS,只有步驟5和步驟6。
負(fù)載平衡器URL重定向
如果你想負(fù)載均衡后端服務(wù),并且重定向HTTP(S)流量,可以使用基于負(fù)載平衡器的URL重定向。可以直接在負(fù)載平衡器上配置這些重定向,這會(huì)消除在后端服務(wù)中執(zhí)行重定向所需的額外資源。負(fù)載平衡器支持HTTP和HTTPS之間的所有排列組合。相比之下,DNS URL重定向不管理證書,因此只能從HTTP重定向到HTTPS,而不能雙向。
> 在負(fù)載平衡器上配置URL重定向
下圖的例子顯示了在負(fù)載均衡器上配置一個(gè)URL重定向規(guī)則,將HTTP流量重定向到HTTPS,響應(yīng)代碼為301,永久移動(dòng)/videos到新地址,保持查詢與原始請(qǐng)求相同。
創(chuàng)建好規(guī)則集,把它添加到Listener。于是,當(dāng)在瀏覽器中輸入http:///時(shí),頁面將被重定向到https:///video。
配置全球URL重定向
全球URL重定向允許將已定義主機(jī)名上的HTTP通信重定向到一個(gè)HTTP(S)目的地,如果范圍是全球的且不限于特定的可用域或區(qū)域,則可以使用選項(xiàng)定義路徑和端口。當(dāng)用戶訪問面向外部的“Internet DNS”時(shí),請(qǐng)使用此選項(xiàng)。使用此選項(xiàng)只重定向面向公眾的域名,而不是基于負(fù)載平衡器的URL重定向,后者可以在私有網(wǎng)絡(luò)內(nèi)重定向。
> 創(chuàng)建和管理DNS Zone
可以手動(dòng)創(chuàng)建區(qū)域或?qū)隯one文件。為了與Oracle的名稱服務(wù)器關(guān)聯(lián),將覆蓋導(dǎo)入Zone的SOA和NS記錄。重定向只能用于對(duì)主DNS使用OC DNS的Zone,OCI控制對(duì)Zone文件的修改。重定向不能用于次DNS服務(wù)器,因?yàn)镺CI只有一個(gè)Zone的只讀副本,無法添加服務(wù)。
> 使用DNS創(chuàng)建HTTP重定向
下圖的例子展示了HTTP重定向配置,將子域oracle.DNSDemos.com重定向到http://www.oracle.com:80,響應(yīng)代碼為301。
驗(yàn)證URL重定向
在你的電腦上打開一個(gè)終端窗口,并運(yùn)行以下命令,檢查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備份組網(wǎng)