重定向

這是個很常用功能,和 NGINX 提供的 rewrite 指令類似,卻更簡明易懂。

它屬於應用的 頁面規則,我們直接新建一個頁面規則來看看如何使用。

動作的下拉選單裡面有很多選項,我們拉到 “響應動作”,從中選擇重定向

重定向的引數會比較多,我們分別解釋下:

  1. URL: 預設是當前 URL,不做更改。你可以下拉框裡面選擇自定義,輸入另外一個 URL;
  2. URL 引數:預設是不帶引數,你可以選擇使用當前的 URL 引數或者是自定義;
  3. 協議:預設是當前請求的協議,可以另外選擇 HTTP 或者 HTTPS;
  4. 主機名: 預設是當前請求的主機名,可以自定義;
  5. : 如果協議是 HTTP 那麼預設是 80,如果是 HTTPS 預設就是 443,一樣可以自定義;
  6. 程式碼: 預設是 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 的地址,其他的引數都沒有變動。