欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx?Rewrite及Location的使用與區(qū)別

 更新時間:2023年08月24日 10:23:03   作者:Guo_youyou  
rewrite和location的功能有點相像,都能實現(xiàn)跳轉,本文主要介紹了Nginx?Rewrite及Location的使用與區(qū)別,具有一定的參考價值,感興趣的可以了解一下

一、Rewrite跳轉場景

URL看起來更規(guī)范、合理

企業(yè)會將動態(tài)URL地址偽裝成靜態(tài)地址提供服務

網址換新域名后,讓舊的訪問跳轉到新的域名上

服務端某些業(yè)務調整

ps:  

URL:就是一個具體路徑/位置

URI:指的是一個擁有相同類型/特性的對象集合

URN:用名稱定位

二、Rewrite跳轉實現(xiàn)

通過ngx_http_rewrite_module這個模塊來實現(xiàn),而這個模塊內有四部分來組成:

Nignx:支持URL重寫、支持if條件判斷,但不支持else

跳轉:循環(huán)最多可以執(zhí)行10次,超過后nginx將返回500錯誤

PCRE支持:rewrite使用nginx全局變量或自己設置的變量,結合正則表達式和標志位實現(xiàn)URL重寫以及重定向

重寫 模塊:set指令

三、Rewrite實際場景

1.nginx跳轉需求的實現(xiàn)方式:

使用rewrite進行匹配跳轉

使用if匹配全局變量后跳轉

使用location匹配再跳轉

2.rewrite放在server{},if{},location{}段中

location只對域名后面的出去傳遞參數(shù)外的字符串起作用

3.對域名或參數(shù)字符串

使用if全局變量匹配

使用proxy_pass反向代理

四、Rewrite正則表達式

字符說明
^匹配輸入字符串的起始位置
&匹配輸入字符串的結束位置
*匹配前面的字符零次或多次
+匹配前面的字符一次或多次
?匹配前面的字符零次或一次
.匹配除“\n”之外的任何單個字符
\將后面接著的字符標記為一個特殊字符或一個原義字符或一個向后引用
\d匹配純數(shù)字
{n} 重復 n 次
{n,} 重復 n 次或更多次
{n,m} 重復 n 到 m 次
[ ]定義匹配的字符范圍
[c]

匹配單個字符 c

[a-z]匹配 a-z 小寫字母的任意一個
[a-zA-Z0-9]匹配所有大小寫字母或數(shù)字
( )表達式的開始和結束位置
|或運算符

五、Rewrite命令/語法格式

 flag標記說明

標記說明
last相當于Apache的[L]標記,表示完成rewrite
break本條規(guī)則匹配完成即終止,不再匹配后面的任何規(guī)則
redirect返回302臨時重定向,瀏覽器地址會顯示跳轉后的URL地址,爬蟲不會更新URL
permanent返回301永久重定向,瀏覽器地址會顯示跳轉后的URL地址,爬蟲更新URL

last :在本條規(guī)則完成后,繼續(xù)向下匹配新的location URL規(guī)則,一般用在server和if當中

break :和last類似,但是不會重新發(fā)起一次處理過程,而是直接返回處理結果,一般用在location當中

redirect :該標記表示當前規(guī)則匹配成功后立即進行重定向操作(臨時)

permanent :該標記和redirect類似,永久性重定向

set :表示當前規(guī)則匹配成功后設置一個變量,并把變量傳入下一條規(guī)則

六、Location分類

1. location 大致可以分為三類:

精準匹配:location = / {...}
一般匹配:location / {...} 
正則匹配:location ~ / {...}

2.location 常用的匹配規(guī)則:

標記說明
=進行普通字符精確匹配,也就是完全匹配
^~表示普通字符匹配,使用前綴匹配
~區(qū)分大小寫的匹配
~*不區(qū)分大小寫的匹配
!~區(qū)分大小寫的匹配取非
!~*不區(qū)分大小寫的匹配取非
@定義一個命名的location,使用在內部定向時

七、Location優(yōu)先級

首先精確匹配 =
其次前綴匹配 ^~
其次是按文件中順序的正則匹配 ~或~*
然后匹配不帶任何修飾的前綴匹配
最后是交給 / 通用匹配     

八、Rewrite和Location比較

1.相同點

都能實現(xiàn)跳轉

2.不同點

rewrite是在同一域名內更改獲取資源的路徑

location是對一類路徑做控制訪問或反向代理,還可以proxy_pass到其他機器

3.rewrite會寫在location里,執(zhí)行順序

執(zhí)行server塊里面的rewrite指令

執(zhí)行l(wèi)ocation匹配

執(zhí)行選定的location中的rewrite指令

九、跳轉小案例

基于域名的跳轉:

#修改配置文件

重啟服務

瀏覽器模擬訪問www.kgc.com會跳轉到www.benet.com

模擬訪問www.kgc.com/test會跳轉到www.benet.com/test,查看元素可以看到返回301,實現(xiàn)了永久重定向跳轉,而且域名后的參數(shù)也正常跳轉。

十、總結

1.優(yōu)先級總結:

(location = 完整路徑) > (location ^~ 路徑) > (location ~,~* 正則順序) > (location 部分起始路徑) > (location /)

2.location 匹配 

首先看 優(yōu)先級:精確>前綴>正則>一般>通用
優(yōu)先級相同:正則看上下順序,上面的優(yōu)先;一般匹配看長度,最長匹配的優(yōu)先
精確、前綴、正則、一般 都沒有匹配到,最后再看通用匹配  一般匹配

3.rewrite和location比較

rewrite:改寫訪問的URL路徑  (被訪問的HTML/HTM/CSS文件)

location:對一類地址進行權限控制(認證控制)+ 跳轉(跨服務器進行URL跳轉)

4.實際網站使用中,至少有三個匹配規(guī)則定義:

第一個必選規(guī)則

直接匹配網站根,通過域名訪問網站首頁比較頻繁,使用這個會加速處理,比如說官網??梢允且粋€靜態(tài)首頁,也可以直接轉發(fā)給后端應用服務器

第二個必選規(guī)則

處理靜態(tài)文件請求,這是nginx作為http服務器的強項有兩種配置模式,目錄匹配或后綴匹配,任選其一或搭配使用

第三個規(guī)則

通用規(guī)則,比如用來轉發(fā)帶.php、.jsp后綴的動態(tài)請求到后端應用服務器非靜態(tài)文件請求就默認是動態(tài)請求

到此這篇關于Nginx Rewrite及Location的使用與區(qū)別的文章就介紹到這了,更多相關Nginx Rewrite Location 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • ubuntu系統(tǒng)中nginx啟動腳本

    ubuntu系統(tǒng)中nginx啟動腳本

    這篇文章主要介紹了ubuntu系統(tǒng)中nginx啟動腳本,可以實現(xiàn)nginx的自啟動,需要的朋友可以參考下
    2014-02-02
  • Nginx動靜分離實現(xiàn)案例代碼解析

    Nginx動靜分離實現(xiàn)案例代碼解析

    這篇文章主要介紹了Nginx動靜分離實現(xiàn)案例代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • Nginx服務器配置性能優(yōu)化方案

    Nginx服務器配置性能優(yōu)化方案

    這篇文章主要為大家詳細介紹了Nginx服務器配置性能優(yōu)化方案,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • nginx 部署前端vue項目的方法實踐

    nginx 部署前端vue項目的方法實踐

    本文主要介紹了Nginx的基本概念及其優(yōu)點,并詳細闡述了如何使用Nginx部署前端Vue項目的步驟,主要包括安裝Nginx、打包Vue項目和配置Nginx三個步驟,感興趣的可以了解一下
    2024-10-10
  • Nginx中Location配置超詳細講解

    Nginx中Location配置超詳細講解

    最近一直在做location 配置,遇到優(yōu)先級別問題(如果配置不當可能存在安全隱患哦),下面這篇文章主要給大家介紹了關于Nginx中Location配置的相關資料,需要的朋友可以參考下
    2023-01-01
  • shell腳本定時統(tǒng)計Nginx下access.log的PV并發(fā)送給API保存到數(shù)據(jù)庫

    shell腳本定時統(tǒng)計Nginx下access.log的PV并發(fā)送給API保存到數(shù)據(jù)庫

    這篇文章主要介紹了shell腳本定時統(tǒng)計Nginx下access.log的PV并發(fā)送給API保存到數(shù)據(jù)庫的實現(xiàn)方法 ,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • Centos7下安裝部署nginx的三種方式詳解

    Centos7下安裝部署nginx的三種方式詳解

    Nginx?(engine?x)?是一個高性能的HTTP和反向代理web服務器,這篇文章主要為大家介紹了Centos7下安裝部署nginx的三種方式,希望對大家有所幫助
    2023-08-08
  • Nginx如何安裝withSSL模塊

    Nginx如何安裝withSSL模塊

    這篇文章主要介紹了Nginx如何安裝withSSL模塊,Nginx 配置文件,開啟ssl訪問時經常報錯,原因是由于nginx缺少http_ssl_module模塊,編譯安裝的時候帶上 --with-http_ssl_module 配置就行了,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • linux下Nginx+Tomcat負載均衡配置方法

    linux下Nginx+Tomcat負載均衡配置方法

    這篇文章主要介紹了linux下Nginx+Tomcat負載均衡配置方法,需要的朋友可以參考下
    2016-09-09
  • nginx如何開啟Gzip壓縮

    nginx如何開啟Gzip壓縮

    啟用Gzip壓縮能顯著減小網頁資源如css、js的體積,提升加載速度,配置方法簡單,在nginx的http塊中添加規(guī)則后重啟即可,注意,不適用于圖片和大文件壓縮
    2024-11-11

最新評論