NGINX組件(rewrite)

一、location匹配的規則和優先級(*)

URI:統一資源標識符,是一種字符串標識,用于標識抽象的或者是物理資源;如:文件、圖片、視頻等

nginx中的URI匹配的是:網址”/“后的路徑 如:…………/images/a.jpg

?location就是用來匹配URI的

匹配方式

匹配方式
1、精確匹配:location = / {……}
2、正則匹配:location ~ / {……}
3、一般匹配:location / {……}

匹配規則

匹配規則:
=精確匹配,完全匹配,不能錯誤一個字,必須要完全匹配
^~匹配普通字符,前綴匹配
$~結尾匹配
~????????區分大小寫的匹配
~*不區分大小寫的匹配
!~區分大小寫的匹配,并且邏輯取反
!~*

不區分大小寫的取反

location匹配的原則:越精準,越匹配;同時優先級越高

總結:匹配的優先級——>越精準,優先級越高

location的優先級

location =? :精確匹配??

location ^~ :前綴匹配

location ~* :? 正則匹配

location /xxx/ : 一般匹配的準確匹配

location / : 一般匹配

注意:一旦匹配成功,后續將不再匹配

工作中的location匹配規則

一、第一個 必選規則

location = / { }

原因:直接匹配根網站。直接通過域名訪問首頁是網站最常用的,直接使用精確匹配,可以加快處理,一般使用精確匹配處理的都是首頁

二、第二個規則

location ^~ /static/ { }

處理靜態文件的請求,目錄匹配 (static為自定義)

三、

location ~* \.(gif | jpg | png | css)

匹配圖片,但注意如果使用rewrite來指定后綴的類型,要在location定義中移除,不然會陷入死循環

四、通用規則

location / {

? ? ? ? proxy_pass? ?————指定代理、反向代理,轉發動態請求,如php.jsp請求 ,發到后端

}

rewrite 重寫、重定向

rewrite使用nginx的全局變量,或是自己設置的變量,結合正則表達式,和標志位實現URL的重定向

default_type text/plain;

表示如果沒有在其他地方顯示:content_type的頭字段,默認響應為text/plain純文本格式

text/html :默認的響應類型,也就是頁面

text/plain :純文本格式,類似.txt文件

text/css :css樣式的類型:css

text/javascript:java腳本,.js。前端文件,也可以理解是iava解析的程序文件。

rewrite 執行順序

1、執行service模塊中的rewrite

2、執行location中的匹配

3、如果location當中還有rewrite,則會繼續執行

注意:如果不停的rewrite,則只會循環執行10次,10次過后進行報錯,返回狀態碼:500

rewrite的語法

rewrite <regex(正則)> <replacement> [flag(標志位)]

過程:

rewrite:開始重定向

regex:正則匹配的規則

replacement :表示跳轉后內容,要重定向的URL

flag:標志位

? ? ? ? 標志位分為四種:

? ? ? ? permanent :永久重定向、返回碼301 —— 永久性的變更URL,搜索引擎會轉移他的權重,以及排名,到新的URL

? ? ? ? redirect :臨時重定向,返回碼:302 —— 用于短期變更(網站維護、升級、更新),搜索,是不會轉移權重和排名

? ? ? ? ????????返回碼:304? ?指的是獲取的是本地緩存

? ? ? ? break :重定向,但是不會改變原始的URL,內容會根據系統處理而顯示重定向后的內容,并且只會請求一次,即刻跳出當前匹配,立即終止

? ? ? ? last :表示本條匹配完成后,繼續向下匹配,只要有last就會繼續進行匹配,配置時需要注意,防止死循環

配置基于域名的跳轉

首先進入nginx的配置文件 進行修改

vim /usr/local/nginx/conf/nginx.confserver {listen       80;server_name  www.zheng.cc;#charset koi8-r;#access_log  logs/host.access.log  main;location / {if ($host = 'www.zheng.cc') {rewrite ^/(.*)$ http://www.bai.com/$1 permanent;}root   html;index  index.html index.htm;}
}

在本地hosts文件中寫入配置的地址

echo "20.0.0.40 www.zheng.cc www.bai.com" >> /etc/hosts

重啟nginx服務

systemctl restart nginx

測試:輸入配置的地址 www.zheng.cc 后回車

?會跳轉至配置的www.bai.com

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36772.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36772.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36772.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux驅動開發--uboot(1)

0.前言 先推薦一部電影《美國派》三部曲&#xff0c;成長題材系列的電影&#xff0c;也反映了對某避諱話題的理性看待&#xff0c;理所當然。 再推薦一個開發套件&#xff0c;NVIDIA Jetson系列開發套件&#xff0c;目前我在用的是Xavier NX和Orin Nano。為什么推薦呢&#xff…

大數據面試題:Hadoop中的幾個進程和作用

面試題來源&#xff1a; 《大數據面試題 V4.0》 大數據面試題V3.0&#xff0c;523道題&#xff0c;679頁&#xff0c;46w字 可回答&#xff1a;1&#xff09;啟動Hadoop&#xff0c;都會有什么進程 參考答案&#xff1a; 1&#xff09;NameNode&#xff1a;Master&#xf…

【ARM 嵌入式 編譯系列 10.2 -- 符號表與可執行程序分離詳細講解】

文章目錄 符號表與可執行程序分離方法一 使用eu-strip方法二 使用 objcopy上篇文章:ARM 嵌入式 編譯系列 10.1 – GCC 編譯縮減可執行文件 elf 文件大小 下篇文章:ARM 嵌入式 編譯系列 10.3 – GNU elfutils 工具小結 符號表與可執行程序分離 接著上篇文章 ARM 嵌入式 編譯…

解決Idea 多模塊,maven項目是多層級文件夾的子項時無法加入git管理的問題

問題 多模塊項目&#xff0c;引入模塊無法做git管理&#xff0c;第一個項目沒有git分支標志&#xff0c;也不能像其他項目一樣右鍵出git選項。 解決方法 發現該模塊是多層級的文件夾結構&#xff0c;也就是項目本身在一個文件夾下。應該是要管理該文件夾。 Settings-Versi…

el-select控制單選還是多選

multiple表示多選&#xff0c;:multiple-limit“1” 限制多選的條數為1&#xff0c;2就是選兩個&#xff0c;依此類推。為0 就是不限制選幾個 使用 allow-create 屬性即可通過在輸入框中輸入文字來創建新的條目。注意此時 filterable 必須為真。 <el-form :inline"true…

【劍指 Offer 40】最小的k個數

題目&#xff1a; 輸入整數數組 arr &#xff0c;找出其中最小的 k 個數。例如&#xff0c;輸入 4、5、1、6、2、7、3、8 這 8 個數字&#xff0c;則最小的 4 個數字是 1、2、3、4。 示例&#xff1a; 輸入&#xff1a;arr [3,2,1], k 2 輸出&#xff1a;[1,2] 或者 [2,1] …

阿里云云主機_ECS云服務器_輕量_GPU_虛擬主機詳解

阿里云云主機分為云虛擬主機、云服務器ECS、輕量應用服務器、GPU云服務器、彈性裸金屬服務器、專有宿主機、FPGA云服務器、高性能計算E-HPC、無影云電腦等&#xff0c;阿里云百科來詳細說下阿里云云主機詳解&#xff1a; 目錄 阿里云云主機 云服務器ECS 輕量應用服務器 云…

我學會這些車載技術,是不是就可以進【小米】車企?

作者&#xff1a;阿刁 隨著智能化和電動化的發展&#xff0c;車載開發領域的前景非常廣闊。許多手機廠商也紛紛加入進來&#xff0c;華為、小米等手機巨頭也相繼推出新能源汽車。所以在未來&#xff0c;車載系統將成為汽車的核心部分&#xff0c;涵蓋車輛的控制、信息娛樂、智能…

安裝paddleSeq2.7.0版本模塊-筆記

安裝paddleSeq2.7.0版本模塊-筆記 先安裝conda和python版本 本機安裝的conda 22.9.0 python2.9.12 paddle2.4.2 paddlepaddle-gpu2.4.2 cuda10.2 安裝matplotlib3.5.0版本 opencv_python-4.5.4.60-cp39-cp39-win_amd64.whl 測試采用分割模型名稱&#xff1a;BiSeNetv2 #BiSe…

Oracle 開發篇+Java調用OJDBC訪問Oracle數據庫

標簽&#xff1a;JAVA語言、Oracle數據庫、Java訪問Oracle數據庫釋義&#xff1a;OJDBC是Oracle公司提供的Java數據庫連接驅動程序 ★ 實驗環境 ※ Oracle 19c ※ OJDBC8 ※ JDK 8 ★ Java代碼案例 package PAC_001; import java.sql.Connection; import java.sql.ResultSet…

背上花里胡哨的書包準備面試之webpack篇(+一些常問的面試題)

目錄 webpack理解&#xff1f; webpack構建流程&#xff1f; loader解決什么問題&#xff1f; plugin解決什么問題&#xff1f; 編寫loader和plugin的思路&#xff1f; webpack熱更新&#xff1f; 如何提高webpack的構建速度&#xff1f; 問git常用命令&#xff1f; ht…

【TensorFlow】P0 Windows GPU 安裝 TensorFlow、CUDA Toolkit、cuDNN

Windows 安裝 TensorFlow、CUDA Toolkit、cuDNN 整體流程概述TensorFlow 與 CUDA ToolkitTensorFlow 是一個基于數據流圖的深度學習框架CUDA 充分利用 NIVIDIA GPU 的計算能力CUDA Toolkit cuDNN 安裝詳細流程整理流程一&#xff1a;安裝 CUDA Toolkit步驟一&#xff1a;獲取CU…

XML 數據傳輸格式

目錄 XML簡介 一、初識XML 1.什么是 XML&#xff1f; 2.XML 和 HTML 之間的差異 3.XML 不會做任何事情 4.通過 XML 您可以發明自己的標簽 5.XML 不是對 HTML 的替代 二、XML 用途 1.XML 把數據從 HTML 分離 2.XML 簡化數據共享 3.XML 簡化數據傳輸 三、XML 樹結構 1.一個 XML 文…

QML HTTP 請求

作者: 一去、二三里 個人微信號: iwaleon 微信公眾號: 高效程序員 在 Web 開發中,實現與服務器的通信至關重要,其中 HTTP 便是最常用的方式之一。它是一種客戶端 - 服務器協議,客戶端向服務器發送請求,服務器則返回響應。常被用于在瀏覽器/客戶端和 Web 服務器之間傳輸消…

mysql執行計劃—— explain

使用explain關鍵字可以直觀的查看一條SQL語句的執行計劃&#xff0c;可以幫助我們選擇合適的索引和優化SQL語句&#xff0c;查詢結構總共有12列。下面列舉幾種需要重點掌握的&#xff1a; 1.id select的標識符&#xff0c;id越大&#xff0c;表示優先級越高&#xff0c;越先執…

VB+SQL酒店客房管理設計與實現

摘要 二十一世紀是信息技術的時代,計算機已經應用到了各行各業中。采用計算機信息管理技術,可以有效的降低企業的管理成本,提高企業內部的工作效率。 本文從天天賓館客房客房管理的一般流程出發,設計了一套天天賓館客房管理信息系統,它可以管理天天賓館客房中所有的客房的…

1. 如何爬取自己的CSDN博客文章列表(獲取列表)(博客列表)(手動+python代碼方式)

文章目錄 寫在最前步驟打開chrome瀏覽器&#xff0c;登錄網頁按pagedown一直往下刷呀刷呀刷&#xff0c;直到把自己所有的博文刷出來然后我們按F12&#xff0c;點擊選取元素按鈕然后隨便點一篇博文&#xff0c;產生如下所示代碼然后往上翻&#xff0c;找到頭&#xff0c;復制然…

1.2 操作系統原理和常見命令

操作系統原理和常見命令 文章目錄 操作系統原理和常見命令操作系統原理操作系統的概述進程管理內存管理文件系統設備管理安全性操作系統的角色 操作系統中的常見命令和操作 操作系統原理 操作系統的概述&#xff1a; 定義&#xff1a;操作系統是控制和管理計算機硬件與軟件資源…

Java-類型和變量(基于C語言的補充)

一個簡單的Java程序 args){ System.out.println("Hello,world"); } }通過上述代碼&#xff0c;我們可以看到一個完整的Java程序的結構&#xff0c;Java程序的結構由如下三個部分組成&#xff1a; 1.源文件&#xff08;擴展名為*.java)&#xff1a;源文件帶有類的定義…

ios消息推送例子

通過Apple推送服務&#xff0c;將消息發送給特定的ios客戶端&#xff0c;這是服務器端實例代碼。需要客戶端的voip key值&#xff0c;以及相應的客戶端回調接口&#xff0c;支持ios9.0以上版本。 下載地址&#xff1a;https://download.csdn.net/download/m0_37567738/8821559…