Nginx位址重定向使用

2021-08-08 15:57:07 字數 1449 閱讀 8538

nginx位址重定向使用

在使用nginx作為伺服器時,經常遇到的需求就是對位址進行重定向(301重定向),而重定向可以解決很多伺服器應用需求,而且nginx實現這一切都比較簡單。那麼,我們常見的重定向有哪些?這裡我就羅列幾個常見的需求:http重定向到https、www自動補全、redirect對https的支援。當然,也有很多人在使用rewrite重寫位址實現重定向,但在這裡並不推薦,因為它在不同的nginx版本是有缺別的,而301是推薦使用的,因為它是http/https通訊協議的標準,與伺服器本身無直接關係。

l   http到https

l   www自動補全

l   跳轉對https支援

一、http到https

https在nginx的配置,讀者可以檢視文章《nginx的ca證書使用總結》,這裡有它詳細的實現過程。其中,如何實現http到https的切換,就用到了nginx的301重定向實現,具體如下樣子(放在nginx.conf的server區域):

二、www自動補全

www自動補全,指的是不需要輸入www,僅輸入一級網域名稱即可自動在前面新增www,比如:***.com為一級網域名稱,www.***.com為二級網域名稱,那麼輸入***.com就可以自動切換為www.***.com訪問。上面的情況是同乙個網域名稱的自動定位,其實我們可以直接在網域名稱管理平台,如:阿里雲上直接新增乙個***.com記錄值,將主機值設為@即可(推薦),並不是必須通過配置nginx實現。

另外一種情況,就是在www.***.com中重定向到yyy.com一級網域名稱,並實現自動定位到www.yyy.com二級網域名稱,那麼同樣可以先在網域名稱管理平台新增yyy.com一級網域名稱,遇上面類似操作。然後,在nginx新增如下配置即可:

server_name  yyy.com

if ($host =』yyy.com』)

如果想同時跳轉到https,僅需要如下配置:

server_name  yyy.com

if ($host =』yyy.com』)

三、跳轉對https支援

很多時候,我們所部署的應用程式,通過其本身提供的redirect實現跳轉功能時,如果跳轉前為https方式請求,跳轉後,則協議預設改為http了,結果引發了很多需要https才能訪問的操作都不能進行。那麼,此時我們就需要配置nginx.conf,使其在跳轉時,支援自動從http跳轉到https,其實配置較簡單,具體如下:

location /***

正如上面所示,該配置情況是使用nginx作為**伺服器,通過proxy_pass中轉到tomcat伺服器(這是較常見的使用)。那麼,通過proxy_redirect配置,就可以完美實現應用程式使用redirect跳轉時,做到保留對https的切換,因為大部分應用程式的redirect僅支援預設的http協議方式。

實際上,nginx的301重定向可以解決很多需求,需要讀者靈活使用即可。

shell重定向使用

2 1使用 一 相關知識 1 預設地,標準的輸入為鍵盤,但是也可以來自檔案或管道 pipe 2 預設地,標準的輸出為終端 terminal 但是也可以重定向到檔案,管道或後引號 backquotes 3 預設地,標準的錯誤輸出到終端,但是也可以重定向到檔案。4 標準的輸入,輸出和錯誤輸出分別表示為s...

Nginx的rewrite 位址重定向 剖析

指令語法 rewrite regex replacement flag 預設值 none 應用位置 server location if rewrite是實現url重定向的重要指令,他根據regex 正規表示式 來匹配內容跳轉到replacement,結尾是flag標記 簡單的小例子 常用正規表示式...

Nginx的rewrite 位址重定向 超細剖析

url看起來更規範 合理 企業會將動態url位址偽裝成靜態位址提供服務 換新網域名稱後,讓舊的訪問跳轉到新的網域名稱上 服務端某些業務調整 nginx跳轉需求的實現方式 使用rewrite進行匹配跳轉 使用if匹配全域性變數後跳轉 使用location匹配跳轉 rewrite放在server if ...