nginx教程1 location 匹配規則

2022-01-20 03:26:28 字數 3001 閱讀 6776

worker_process

# 表示工作程序的數量,一般設定為

cpu的核數

worker_connections

# 表示每個工作程序的最大連線數

server{}

# 塊定義了虛擬主機

listen

# 監聽埠

server_name

# 監聽網域名稱

location {}

# 是用來為匹配的 uri 進行配置,uri 即語法中的「/uri/」

location

/{}

# 匹配

任何查詢

,因為所有請求都以 / 開頭

root

# 指定對應uri的資源查詢路徑,這裡html為相對路徑,完整路徑為

# /opt/nginx-1.7.7/html/

index

# 指定首頁index檔案的名稱,可以配置多個,以空格分開。如有多個,按配置順序查詢。

從配置可以看出,nginx 監聽了 80 埠、網域名稱為 localhost、根路徑為 html 資料夾、預設 index 檔案為 index.html,index.htm

伺服器錯誤重定向到 50x.html 頁面。

location 匹配規則

location [=|~|~*|^~] /uri/

模式含義

location = /uri

= 表示精確匹配,只有完全匹配上才能生效

location ^~ /uri

^~ 開頭對url路徑進行字首匹配,並且在正則之前。

location ~ pattern

開頭表示區分大小寫的正則匹配

location ~* pattern

開頭表示不區分大小寫的正則匹配

location /uri

不帶任何修飾符,也表示字首匹配,但是在正則匹配之後

location /

通用匹配,任何未匹配到其它location的請求都會匹配到,相當於switch中的default

字首匹配時,nginx 不對 url 做編碼,因此請求為 

/static/20%/aa

,可以被規則 

^~ /static/ /aa

匹配到(注意是空格)

多個 location 配置的情況下匹配順序為(參考資料而來,還未實際驗證,試試就知道了,不必拘泥,僅供參考):

注意:字首匹配,如果有包含關係時,按最大匹配原則進行匹配。比如在字首匹配:

location /dir01

與 location /dir01/dir02

,如有請求 

將最終匹配到 

location /dir01/dir02

例子,有如下匹配規則:

/ 規則f比a少乙個等於號

那麼產生的效果如下:

訪問 http://localhost/category/id/1111

則最終匹配到規則 f ,因為以上規則都不匹配,這個時候應該是 nginx **請求給後端應用伺服器,比如 fastcgi(php),tomcat(jsp),nginx 作為反向**伺服器存在。

所以實際使用中,筆者覺得至少有三個匹配規則定義,如下:

# 直接匹配**根,通過網域名稱訪問**首頁比較頻繁,使用這個會加速處理,官網如是說。

# 這裡是直接**給後端應用伺服器了,也可以是乙個靜態首頁

# 第乙個必選規則

location

= /

# 第二個必選規則是處理靜態檔案請求,這是 nginx 作為 http 伺服器的強項

# 有兩種配置模式,目錄匹配或字尾匹配,任選其一或搭配使用

# 第三個規則就是通用規則,用來**動態請求到後端應用伺服器

# 非靜態檔案請求就預設是動態請求,自己根據實際把握

# 畢竟目前的一些框架的流行,帶.php、.jsp字尾的情況很少了

location

/ rewrite 語法

1、下面是可以用來判斷的表示式:

-f 和 !-f 用來判斷是否存在檔案 -d 和 !-d 用來判斷是否存在目錄 -e 和 !-e 用來判斷是否存在檔案或目錄 -x 和 !-x 用來判斷檔案是否可執行

2、下面是可以用作判斷的全域性變數

例:http://localhost:88/test1/test2/test.php?k=v $host:localhost $server_port:88 $request_uri:/test1/test2/test.php?k=v $document_uri:/test1/test2/test.php $document_root:d:\nginx/html $request_filename:d:\nginx/html/test1/test2/test.php

redirect 語法

server }

防盜煉location

} 根據檔案型別設定過期時間

禁止訪問某個目錄

location

~* \.(txt|doc)$

nginx 基礎模組 2 虛擬機器location等

一 虛擬主機 server 虛擬機器主機只需要在conf.d目錄裡 另起乙個.conf 檔案,裡面把server段配好就行了,如果是相同ip埠 用網域名稱來區分,就像上面 一樣 二 日誌 nginx 基礎模組 2 虛擬機器location等 這些欄位是控制日誌輸出內容的 remote addr變數 ...

Nginx 教程 1 基本概念

效能管理 提公升速度的訣竅。我們將會講解 gzip 快取 緩衝區以及超時設定。ssl 設定 講解用 https 來提供內容的設定步驟。quit 優雅關閉 等待 worker 執行緒完成處理 reload 過載配置檔案 reopen 重新開啟日誌檔案 usr local etc nginx nginx...

nginx教程(二) nginx安裝教程

目錄 在開始之前 首先,安裝下編譯環境和安裝編譯原始碼所需要的工具和庫,執行命令 yum install gcc gcc c ncurses devel perl 否則,安裝安裝編譯時會報如下錯誤 建立目錄 mk usr local software package 然後進入 cd usr loca...