nginx--location

location介紹

匹配指定的請求uri(請求uri不包含查詢字符串,如http://localhost:8000/test?age=18,請求url是/test)css

語法:location   [ = | ~ | ~* | ^~ | @]   /uri/     { configuration }html

匹配的優先級python

匹配符 匹配規則 優先級
=    精確匹配    # 1
^~    以某個字符串開頭   # 2
~    區分大小寫的正則匹配    # 3
~*    不區分大小寫的正則匹配   # 4
!~    區分大小寫不匹配的正則   # 5
!~*    不區分大小寫不匹配的正則   # 6
/    通用匹配,任何請求都會匹配到   # 7

配置文件

server {
    listen 80;
    server_name www.zouzou.com;

    # 優先級1,精確匹配,根路徑
    location =/ {
        return 400;
    }

    # 優先級2,以某個字符串開頭,以test開頭的,優先匹配這裏,區分大小寫
    location ^~ /test{
       root /data/test/;
    }

    # 優先級3,區分大小寫的正則匹配,匹配/media*****路徑
    location ~ /media {
          alias /data/static/;
    }

    # 優先級4 ,不區分大小寫的正則匹配,全部的****.jpg|gif|png 都走這裏
    location ~* .*\.(jpg|gif|png|js|css)$ {
       root  /data/av/;
        }

    # 優先7,通用匹配
    location / {
        return 403;
    }
}

root和location

nginx指定文件路徑有root和alias兩種方法,區別在方法和做用域:nginx

方法:rootweb

語法 root 路徑;服務器

默認值 root html;url

配置塊 http{} server {} location{}spa

alias:
語法: alias 路徑code

配置塊 location{}server

root和alias區別在nginx如何解釋location後面的url,這會使得二者分別以不一樣的方式講請求映射到服務器文件上,root參數是root路徑+location位置

# root實例1:

    location ^~ /test {
        root /data/test;   # 注意這裏無關緊要結尾的   /
    }
# 請求url是zouzou.com/test/index.html時
# web服務器會返回服務器上的/data/test/test/index.html

# root實例2: location ~* .*\.(jpg|gif|png|js|css)$ { root /data/test/; } # 請求url是zouzou.com/girl.gif時 # web服務器會返回服務器上的/data/test/girl.gif # alias實例: # alias參數是使用alias路徑替換location路徑,alias是一個目錄的別名 # 注意alias必須有 "/" 結束!alias只能位於location塊中 # 請求url是pythonav.cn/av/index.html時 # web服務器會返回服務器上的/data/static/index.html location ^~ /av { alias /data/static/; }
相關文章
相關標籤/搜索