91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Nginx Rewrite模塊(內含Nginx模塊概述)———理論篇

發布時間:2020-06-17 00:14:05 來源:網絡 閱讀:344 作者:wx5d3faba330584 欄目:系統運維

Rewrite跳轉場景

URL看起來更規范,合理
企業會將動態URL地址偽裝成靜態地址提供服務
網址換新域名后,讓舊的訪問跳轉到新的域名上
服務端某些業務調整

Rewrite跳轉實現

Nginx Rewrite模塊(內含Nginx模塊概述)———理論篇

Rewrite實用場景

1、Nginx跳轉需求的實現方式
     使用rewrite進行匹配跳轉
     使用if匹配全局變量后跳轉
     使用location匹配再跳轉
2、rewrite放在server{},if{},location{}段中
3、對域名或參數字符串
     使用if全局變量匹配
     使用proxy_pass反向代理

常用的正則表達式元字符

Nginx Rewrite模塊(內含Nginx模塊概述)———理論篇

Rewrite命令

語法:
rewrite <regex>            <replacement>             [flag];
            正則                  跳轉后的內容               rewrite支持的flag標記

flag標記說明:
Nginx Rewrite模塊(內含Nginx模塊概述)———理論篇
last和break比較:
Nginx Rewrite模塊(內含Nginx模塊概述)———理論篇

location分類

分類:
    location = patt {} [精準匹配]
    location patt {} [一般匹配]
    location ~ patt {} [正則匹配]

正則匹配的常用表達式:
Nginx Rewrite模塊(內含Nginx模塊概述)———理論篇

location優先級

**相同類型的表達式,字符創長的會優先匹配**
**按優先級排列**
    = 類型
    ^~ 類型表達式
    正則表達式(~和~*)類型
    常規字符串匹配類型,按前綴匹配
    通常匹配(/),如果沒有其他匹配,任何請求都會匹配到

比較rewrite和location

**相同點**
        都能實現跳轉
**不同點**
        rewrite是在同一域名內更改獲取資源的路徑
        location是對一類路徑做控制訪問或方向代理,還可以proxy_pass到其他機器
**rewrite會寫在location里執行順序**
        執行server塊里面的rewrite指令
        執行location匹配
        執行選定的location中的rewrite指令

location優先級的示例

##精確匹配/,主機名后面不能帶任何字符串
location = / {
[ configuration A ]     
}

##所有的地址都以/開頭,這條規則將匹配到所有請求,但正則和最長字符串會優先匹配
location  / {
[ configuration B ]     
}

##匹配任何以/documents/開頭的地址,當后面正則表達式沒有匹配到時,才起作用
location /documents/ {
[ configuration C ]
}

##匹配任何以/documents/abc開頭的地址,當后面正則表達式沒有匹配到時,才會起作用
location ~ /documents/abc {
[ configuration D ]
}

##以/images/開頭的地址,匹配符合后,停止往下匹配
location ^~ /images/ {
[ configuration E ]
}

##匹配所有以gif結尾的請求,/images/下的圖片會被[configuration E]處理,因為^~的優先級更高
location ~* \.(gif|jpg|jpeg)$ {
[ configuration F ]
}

##最長字符匹配到/images/abc,優先級最低
location /images/abc {
[ configuration G ]
}

##以/images/abc開頭的,優先級次之
location ~ /images/abc {
[ configuration H ]
}

##如果和正則~/images/abc/1.html相比,正則優先級更高
location /images/abc/1.html {
[ configuration I ]
}

location優先級規則

匹配某個具體文件:
(location = 完整路徑)>(location ^~完整路徑)>(location ~完整路徑)>(location ~完整路徑)>(location 完整路徑)>(location /)
用目錄做匹配訪問某個文件:
(location = 目錄)>(location ^~目錄/)>(location ~ 目錄)>(location ~ 目錄)>(location 目錄)>(location /)

Nginx模塊

Nginx Rewrite模塊(內含Nginx模塊概述)———理論篇

1,Nginx 工作原理

Nginx 由內核和模塊組成。
?       Nginx 本身做的工作實際很少,當它接到一個 HTTP 請求時, 它僅僅是通過查找配置文件將此次請求映射到一個 location block,而此 location 中所配 置的各個指令則會啟動不同的模塊去完成工作,因此模塊可以看做 Nginx 真正的勞動工作者。 
?       通常一個 location 中的指令會涉及一個 handler 模塊和多個 filter 模塊(當然,多個 location 可以復用同一個模塊)。handler 模塊負責處理請求,完成響應內容的生成,而 filter 模塊對響應內容進行處理。 用戶根據自己的需要所開發的模塊都屬于第三方模塊。正是有了這么多模塊的支撐, Nginx 的功能才會如此強大。 
Nginx 的模塊從結構上分為核心模塊、基礎模塊和第三方模塊: 
          核心模塊:HTTP 模塊、EVENT 模塊和 MAIL 模塊; 
          基礎模塊:HTTP Access 模塊、HTTP FastCGI 模塊、HTTP Proxy 模塊和 HTTP Rewrite 模塊;
          第三方模塊:HTTP Upstream Request Hash 模塊、Notice 模塊和 HTTP Access Key 模 塊。
Nginx 的模塊從功能上分為如下三類:
?       Handlers(處理器模塊):此類模塊直接處理請求,并進行輸出內容和修改 headers 信息等操作。Handlers 處理器模塊一般只能有一個; Filters(過濾器模塊):此類模塊主要對其他處理器模塊輸出的內容進行修改操作,最后由 Nginx 輸出; Proxies(代理類模塊):此類模塊是 Nginx 的 HTTP Upstream 之類的模塊,這些模塊主要與后端一些服務比如 FastCGI 等進行交互,實現服務代理和負載均衡等功能。 

2. Nginx 的進程模型 在工作方式上,Nginx 分為單工作進程和多工作進程兩種模式。

?     在單工作進程模式下,除主進程外,還有一個工作進程,工作進程是單線程的; 
?     在多工作進程模式下,每個工作進程包含多個線程。Nginx 默認為單工作進程模式。 
?     Nginx 在啟動后,會有一個 master 進程和多個 worker 進程。 
?     master 進程主要用來管理 worker 進程,主要包含:接收來自外界的信號,向各 worker 進程發送信號,監控 worker 進程的運行狀態,當 worker 進程退出后(異常情況下),會自動 重新啟動新的 worker 進程。 master 進程充當整個進程組與用戶的交互接口,同時對進程進行監護。它不需要處理網絡事件,不負責業務的執行,只會通過管理worker 進程來實現重啟服務、平滑升級、更換日志文件、配置文件實時生效等功能。 

3.Nginx+FastCGI運行原理

            Nginx 不支持對外部程序的直接調用或者解析,所有的外部程序(包括 PHP)必須通過FastCGI 接口來調用。FastCGI 接口在 Linux 下是 socket(這個 socket 可以是文件 socket, 也可以是 ip socket)。 wrapper 為了調用 CGI 程序,還需要一個 FastCGI 的 wrapper(wrapper 可以理解為用于啟動另一個程序的程序),這個 wrapper 綁定在某個固定 socket 上,如端口或者文件 socket。當 Nginx 將 CGI 請求發送給這個 socket 的時候,通過 FastCGI 接口,wrapper 接收到請求,然后 Fork(派生)出一個新的線程,這個線程調用解釋器或者外部程序處理腳本并讀取返回數據;接著 wrapper 再將返回的數據通過 FastCGI 接口,沿著固定的 socket傳遞給 Nginx;最后 Nginx 將返回的數據(html 頁面或者圖片)發送給客戶端。
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淄博市| 江津市| 南投县| 正阳县| 衡山县| 武夷山市| 宿迁市| 雷山县| 榕江县| 迁西县| 滕州市| 四子王旗| 新民市| 三江| 朝阳市| 贵德县| 美姑县| 浮山县| 兴化市| 渝中区| 乌兰察布市| 彭水| 广水市| 元氏县| 高清| 郸城县| 望江县| 集贤县| 什邡市| 共和县| 高密市| 阜城县| 盐源县| 蛟河市| 夏河县| 安陆市| 长治市| 古丈县| 屏东县| 临沭县| 兴宁市|