1. 程式人生 > >nginx--location詳解

nginx--location詳解

location執行順序

在這裡插入圖片描述

location [=|~|~*|^~] /uri/ { … }

### 通用匹配符

1、^: 匹配字串的開始位置;

2、 $:匹配字串的結束位置;

3、.*: .匹配任意字元,*匹配數量0到正無窮;

4、. 斜槓用來轉義,.匹配 . 特殊使用方法,記住記性了;

5、(值1|值2|值3|值4):或匹配模式,例:(jpg|gif|png|bmp)匹配jpg或gif或png或bmp

6、i不區分大小寫

一.正則表示式匹配,其中:

  • ~ 為區分大小寫匹配
  • ~* 為不區分大小寫匹配
  • !~ 和!~*分別為區分大小寫不匹配及不區分大小寫不匹配
模式 含義
location = /uri = 表示精確匹配,只有完全匹配上才能生效
location ^~ /uri ^~ 開頭對URL路徑進行字首匹配,並且在正則之前。
location ~ pattern 開頭表示區分大小寫的正則匹配
location ~* pattern 開頭表示不區分大小寫的正則匹配
location /uri 不帶任何修飾符,也表示字首匹配,但是在正則匹配之後
location / 通用匹配,任何未匹配到其它location的請求都會匹配到,相當於switch中的default

location__ proxy_pass

在nginx中配置proxy_pass代理轉發時,如果在proxy_pass後面的url加/,表示絕對根路徑;如果沒有/,表示相對路徑,把匹配的路徑部分也給代理走。 比如:我訪問

http://192.168.1.1/proxy/index/

location /proxy/ {
    proxy_pass http://127.0.0.1/;
}
############# 代理的url   http://127.0.0.1/index

location /proxy/ {
    proxy_pass http://127.0.0.1;
}
###########代理到URL:http://127.0.0.1/proxy/index

location __ 靜態檔案代理 root 和 alias 的區別 如果用root屬性: root代理的路徑+location路徑 如果用alias屬性 : alias代理的路徑 比如:我瀏覽器訪問地址為192.168.1.1/html/abc.html

 location /html/{
	root  /home/tz/static/;
}
########  代理到URL /home/tz/static/html/abc.html

location /html/
{
   ailas /home/tz/static/;
}
##########  代理到URL /home/tz/static/abc.html