最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nginx的重定向(rewrite)問(wèn)題及解讀

 更新時(shí)間:2026年05月04日 11:00:13   作者:俄羅斯牛欄山  
文章主要介紹了Nginx中的location匹配、優(yōu)先級(jí)及其與rewrite的區(qū)別,詳細(xì)解釋了location和rewrite的使用場(chǎng)景、語(yǔ)法、優(yōu)先級(jí)、標(biāo)志位和執(zhí)行順序等內(nèi)容,并通過(guò)示例展示了基于域名和IP地址進(jìn)行跳轉(zhuǎn)的方法

1、location 匹配

location匹配的就是后面的URL,對(duì)訪問(wèn)的路徑做訪問(wèn)控制或者代理轉(zhuǎn)發(fā)

共有三個(gè)匹配:精確匹配、正則匹配、一般配

a、精確匹配

格式:location=/ 對(duì)字符串進(jìn)行完全匹配,必須完全合

b、正則匹配

  • ^~:前綴匹配 以什么為開(kāi)頭,如果匹配成功,則不再匹配其它的正則匹配的location。
  • ~:區(qū)分大小寫(xiě)的匹配
  • ~*:不區(qū)分大小寫(xiě)
  • !~:區(qū)分大小寫(xiě)的區(qū)分
  • !~*:不匹配大小的取反

c、一般匹配(通用匹配)

  • location  /字符串

2、location 優(yōu)先級(jí)以及原則

優(yōu)先級(jí):精確>正則>一般

優(yōu)先級(jí)總結(jié):

  • location= 最高,必須是完整路徑
  • location= 1.jpg 每一位都需要一摸一樣否則匹配不到
  • location= 完整路徑 > location ^~ > location~ location ~* >location /部分起始位置 >location /

實(shí)際網(wǎng)站中的使用規(guī)則:

location= / {
root html;
index index.html index.htm index.php;
}

網(wǎng)站首頁(yè)

第二個(gè)必選的規(guī)則:處理靜態(tài)請(qǐng)求的頁(yè)面

location^~ /static /{
root/web/sataic/
index index.html index.htm;
}

用來(lái)匹配靜態(tài)頁(yè)面

location ~* \.(jpg.gif|png|jpeg|css)$ {
root /web/pirturs/;
idnex index.html index.tml;
}

訪問(wèn)圖片或者指定的后綴名

第三個(gè)規(guī)則,一般通用規(guī)則,用來(lái)轉(zhuǎn)發(fā).php .js 為后綴的動(dòng)態(tài)請(qǐng)求到后端服務(wù)器(數(shù)據(jù)庫(kù))

location / {
proxy_pass
}

轉(zhuǎn)發(fā)后端請(qǐng)求和負(fù)載均衡

3、rewrite重定向

rewrite就是把當(dāng)前訪問(wèn)的頁(yè)面跳轉(zhuǎn)到其他頁(yè)面

rewrite工作方式,通過(guò)nginx的全局變量或者是自定義變量,結(jié)合正則表達(dá)式和標(biāo)志位實(shí)現(xiàn)url的重定向,對(duì)訪問(wèn)的域名或者域名內(nèi)的URL路徑地址重寫(xiě)。

4、rewrite 和 location區(qū)別

從功能看 rewrite 和 location都能實(shí)現(xiàn)跳轉(zhuǎn),主要區(qū)別在于 rewrite 是在同一域名內(nèi)更改獲取資源的路徑,而 location 是對(duì)一類(lèi)路徑做控制訪問(wèn)或反向代理,還可以proxy_pass 到其他機(jī)器。

5、nginx的變量

  • $url 客戶端另外的url地址
  • $host 請(qǐng)求的主機(jī)名
  • $http_user_agent :客戶端請(qǐng)求的瀏覽器和操作系統(tǒng)
  • $http_referer:請(qǐng)求頭的fefrr的信息模式當(dāng)前頁(yè)面來(lái)源的url
  • $remote_addr 客戶端的IP地址
  • $remote_port 客戶端的端口
  • $server_port 服務(wù)端的端口號(hào)
  • $server_addr 服務(wù)端的ip地址
  • $request_method 獲取客戶端請(qǐng)求的方法
  • $scheme請(qǐng)求的協(xié)議,要么是http 要么是https
  • x_forward_for :用來(lái)獲取請(qǐng)求頭當(dāng)中客戶端的真實(shí)ip地址,代理服務(wù)器添加,在代理服務(wù)器中指示客戶端的ip地址
  • X-Real-IP: 客戶端真實(shí)的ip地址

6、標(biāo)志位

flag:(四種)

  • permanen 永久重定向。返回碼是301 瀏覽器地址會(huì)顯示跳轉(zhuǎn)后的url地址 (方便搜索引擎可以被搜索到)
  • redirect 臨時(shí)重定向,返回碼302 瀏覽器地址會(huì)顯示跳轉(zhuǎn)后url地址
  • break 永久重定向 返回碼也是301 但是他匹配到規(guī)則之后不會(huì)在向下匹配其他規(guī)則,url 也不會(huì)發(fā)生變化
  • last 重定向但是會(huì)繼續(xù)向下匹配其他的location規(guī)則

7、rewrite的執(zhí)行順序

1、server模塊的rewrite優(yōu)先級(jí)最高

2、匹配location的規(guī)則

3、執(zhí)行選定的location規(guī)則

8、rewrite的語(yǔ)法

rewrite 正則表達(dá)式 跳轉(zhuǎn)后的內(nèi)容 標(biāo)志位;

在重定向的過(guò)程中使用last方式進(jìn)行重定向,但是沒(méi)有結(jié)束語(yǔ),陷入了死循環(huán),nginx會(huì)自動(dòng)循環(huán)10次

last最多只能執(zhí)行10次,超過(guò)10次沒(méi)有結(jié)束就會(huì)停止,然后保存500

將結(jié)束語(yǔ)last改成break避免死循環(huán)

9、實(shí)驗(yàn) 基于域名進(jìn)行跳轉(zhuǎn),老的不用了,但是依然可以訪問(wèn),統(tǒng)統(tǒng)跳轉(zhuǎn)到新的域名

宿主機(jī) :192.168.10.20 域名www.xy 1 0 2.com

  if ( $host = 'www.xy102.com' ){
         rewrite ^/(.*)$ http://www.zlm.com/$1 permanent;

 在/etc/hosts目錄下進(jìn)行本地映射

在虛擬機(jī)自帶的瀏覽器對(duì)域名www.xy102.com進(jìn)行訪問(wèn),域名跳轉(zhuǎn)到www.zlm.com只域名跳轉(zhuǎn),內(nèi)容不變

  

10、實(shí)驗(yàn)

基于ip進(jìn)行跳轉(zhuǎn),公司有新業(yè)務(wù)上線,測(cè)試階段,其他的ip只能顯示維護(hù)中,只有本機(jī)能正常訪問(wèn)

設(shè)置一個(gè)變量名,變量名rewrite值是true,接下來(lái)判斷ip是否合法,true進(jìn)行跳轉(zhuǎn),如果是false跳轉(zhuǎn)到錯(cuò)誤頁(yè)面

   set $rewrite true;
           if ( $remote_addr = "192.168.10.20" ){
        set $rewrite false;
}
        if ( $rewrite = true ){
        rewrite (.+) /error.html;
}
        location = /error.html {
        root html;
        index index.html;
}

error.html的內(nèi)容 

使用宿主機(jī)192.168.10.20對(duì)192.168.10.20進(jìn)行訪問(wèn)  

 

使用192.168.10.30對(duì)192.168.10.20進(jìn)行訪問(wèn)

 

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Ubuntu中Nginx虛擬主機(jī)設(shè)置的項(xiàng)目實(shí)踐

    Ubuntu中Nginx虛擬主機(jī)設(shè)置的項(xiàng)目實(shí)踐

    通過(guò)配置虛擬主機(jī),可以在同一臺(tái)服務(wù)器上運(yùn)行多個(gè)獨(dú)立的網(wǎng)站,本文主要介紹了Ubuntu中Nginx虛擬主機(jī)設(shè)置的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • Nginx服務(wù)器配置HTTPS nginx.config 配置文件(教程)

    Nginx服務(wù)器配置HTTPS nginx.config 配置文件(教程)

    下面小編就為大家分享一篇Nginx服務(wù)器配置HTTPS nginx.config 配置文件(教程),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 在ubuntu下為nginx配置支持cgi腳本的方案

    在ubuntu下為nginx配置支持cgi腳本的方案

    本文的需求:讓nginx能夠解析.cgi后綴的文件,相信會(huì)特意看這篇文章的人對(duì)CGI是什么及其作用已經(jīng)有了足夠的了解,所以在這里不再贅述,直接開(kāi)始配置。
    2017-02-02
  • 配置nginx隱藏版本號(hào)的多種方法

    配置nginx隱藏版本號(hào)的多種方法

    在生產(chǎn)環(huán)境中,需要隱藏nginx等服務(wù)的版本信息,以免造成安全風(fēng)險(xiǎn),下面小編給大家?guī)?lái)了兩種方法,幫助大家學(xué)習(xí)配置nginx隱藏版本號(hào)的相關(guān)知識(shí),需要的朋友可以參考下
    2022-01-01
  • Nginx中default_server指令問(wèn)題詳解

    Nginx中default_server指令問(wèn)題詳解

    nginx 的 default_server 指令可以定義默認(rèn)的 server 出處理一些沒(méi)有成功匹配 server_name 的請(qǐng)求,下面這篇文章主要給大家介紹了關(guān)于Nginx中default_server指令問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • nginx控制連接數(shù)及訪問(wèn)速率的實(shí)現(xiàn)

    nginx控制連接數(shù)及訪問(wèn)速率的實(shí)現(xiàn)

    本文主要介紹了Nginx中ngx_http_limit_conn_module和ngx_http_limit_req_module模塊的使用,用于控制連接數(shù)和請(qǐng)求速率,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-12-12
  • Nginx泛解析到子目錄后自動(dòng)判斷有無(wú)public目錄詳解

    Nginx泛解析到子目錄后自動(dòng)判斷有無(wú)public目錄詳解

    這篇文章主要給大家介紹了關(guān)于Nginx泛解析到子目錄后自動(dòng)判斷有無(wú)public目錄的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • 關(guān)于nginx報(bào)錯(cuò)405?not?allowed解決方法總結(jié)

    關(guān)于nginx報(bào)錯(cuò)405?not?allowed解決方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于nginx報(bào)錯(cuò)405?not?allowed解決方法的相關(guān)資料,nginx遇到post請(qǐng)求靜態(tài)文件會(huì)得到405錯(cuò)誤,文中通過(guò)代碼介紹的非常詳細(xì),也給出了推薦方法,需要的朋友可以參考下
    2023-10-10
  • nginx常見(jiàn)問(wèn)題整理和解決辦法

    nginx常見(jiàn)問(wèn)題整理和解決辦法

    給大家詳細(xì)整理了nginx常見(jiàn)的問(wèn)題以及對(duì)應(yīng)問(wèn)題的處理辦法,有需要的朋友參考一下吧。
    2017-12-12
  • Nginx中的location路徑映射問(wèn)題

    Nginx中的location路徑映射問(wèn)題

    這篇文章主要介紹了Nginx中的location路徑映射問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評(píng)論

元氏县| 中山市| 江城| 平潭县| 正安县| 湖州市| 平原县| 永顺县| 信宜市| 桑日县| 盘山县| 信丰县| 巧家县| 三台县| 怀宁县| 洛川县| 梁平县| 银川市| 龙游县| 曲麻莱县| 盖州市| 南郑县| 星座| 光山县| 寿宁县| 临高县| 乌鲁木齐县| 巴林右旗| 和硕县| 临朐县| 梁平县| 济阳县| 新蔡县| 封开县| 长汀县| 荣成市| 西平县| 德清县| 博野县| 武清区| 涿州市|