重定向
這是個很常用功能,和 NGINX 提供的 rewrite 指令類似,卻更簡明易懂。
它屬於應用的 頁面規則
,我們直接新建一個頁面規則來看看如何使用。
動作
的下拉選單裡面有很多選項,我們拉到 “響應動作”,從中選擇重定向。
重定向的引數會比較多,我們分別解釋下:
- URL: 預設是當前 URL,不做更改。你可以下拉框裡面選擇自定義,輸入另外一個 URL;
- URL 引數:預設是不帶引數,你可以選擇使用當前的 URL 引數或者是自定義;
- 協議:預設是當前請求的協議,可以另外選擇 HTTP 或者 HTTPS;
- 主機名: 預設是當前請求的主機名,可以自定義;
- 埠: 如果協議是 HTTP 那麼預設是 80,如果是 HTTPS 預設就是 443,一樣可以自定義;
- 程式碼: 預設是 302,可以自行從下拉框中選擇;
下面的示例,是把 HTTP 的請求重定向到 HTTPS,其他不做變化:
設定完條件後,我們來設定重定向:
那麼這個限制規則到底生效沒有呢?我們來驗證下。
我們首先要進入 釋出
頁面,把這個規則同步到所有閘道器的節點中去。
如果釋出可以檢視釋出,這裡不再贅述。
然後再開啟 shell 來模擬客戶端的訪問。
$ curl -i -H 'host: rewrite-rule-test.com' http://52.43.45.19/404.html
HTTP/1.1 404 Not Found
Server: openresty+
Date: Mon, 21 Jan 2019 15:48:40 GMT
Content-Type: text/html
Content-Length: 166
Connection: keep-alive
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>openresty</center>
</body>
</html>
可以應答體是 302 跳轉到了 HTTPS 的地址,其他的引數都沒有變動。