概覽
透過Nginx的轉發功能來自行搭建URL轉發伺服器,實作網域名稱轉發功能。
需求場景
需求場景一:顯性URL轉發
用的是301重新導向技術,效果為瀏覽器網址列輸入 http://a.com 回車,開啟網站內容是目標地址 http://cloud.baidu.com/ 的網站內容,且網址列顯示目標地址 http://cloud.baidu.com/ 。
需求場景二:隱性URL轉發
用的是 iframe 框架技術、非重新導向技術,效果為瀏覽器網址列輸入 http://a.com 回車,開啟網站內容是目標地址 http://cloud.baidu.com/ 的網站內容,但網址列顯示當前地址 http://a.com 。
實作概述
目前使用者需要手動搭建一個nginx伺服器或者集群,將網域名稱在註冊商那裏設定解析IP為自行搭建的Nginx伺服器地址。
Nginx可以透過rewrite或者proxy_pass兩種方式將流量牽引到目標業務。
說明: 一般情況不建議使用隱形轉發,流量過Nginx伺服器對運維和負載均衡都存在挑戰。
顯性URL轉發
301永久重新導向
server { listen 80; server_name $your_domain; rewrite /.* http://$new_domain$uri permanent;}
這裏 $uri 是指匹配正則後跳轉的目標地址,比如存取 $your_domain/about 就會跳轉到 http://$new_domain/about。
302臨時重新導向
server { listen 80; server_name $your_domain; rewrite /.* http://$new_domain$uri redirect;}
註意修改完重新開機nginx。
隱性URL轉發
我們將存取service.baidu.com:9988的流量代理到redirect.baidu.com:6666上去.