NGINX -- 詳解Nginx幾種常見實現301重定向方法上的區別


Nginx下常見的301跳轉有以下三種,雖然都能達到同樣的目的。但是三種寫法上還是有區別的,主要的區別是在正則匹配的性能上。

第一種:使用rewrite指令,通過正則匹配所有的URI后再去掉開頭第一個/(反斜線)。

 
1
rewrite ^/(.*)$ https: //www .hi-linux.com/$1;

第二種:同樣使用rewrite指令,不同的是通過$request_uri變量匹配所有的URI。

 
1
rewrite ^ https: //www .hi-linux.com$request_uri? permanent;

這樣寫的好處是省去了去掉開頭第一個反斜線的過程,正則匹配上性能更優。

第三種:使用return指令,通過301狀態碼和$request_uri參數,直接告訴Nginx這是個301重定向和抓取指定URI。

 
1
return 301 https: //www .hi-linux.com$request_uri;

這種方法是性能上最優的,因為rewrite指令有很多寫法和規則,執行完所有正則匹配后,Nginx 才會知道這是一個301永久重定向。

通過以上三種寫法介紹,我們可以看出return指令在301跳轉上比rewrite指令性能上更加有優勢。雖然在訪問量不大的情況下幾種寫法的性能表現上區別並不大,不過在海量訪問中一個小小的優化也能在提升業務系統性能上起到不小的作用喲。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM