首頁  >  文章  >  後端開發  >  nginx location設定說明

nginx location設定說明

WBOY
WBOY原創
2016-07-29 08:33:111071瀏覽

Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令。 Location 指令,是用來為符合的 URI 進行配置,URI 即語法中的”/uri/”,可以是字串或正規表示式。但如果要使用正規表示式,則必須指定前綴。

nginx location語法

基本語法:location [=|~|~*|^~] /uri/ { … }

= 嚴格匹配。如果這個查詢匹配,那麼將停止搜尋並立即處理此請求。
~ 為區分大小寫符合(可用正規表示式)
~* 為不區分大小寫符合(可用正規表示式)
!~和!~*分別為區分大小寫不符及不區分大小寫不符
^~ 如果把這個前綴用於一個常規字串,那麼告訴nginx 如果路徑匹配那麼不測試正則表達式。

Location語法語法:location [=|~|~*|^~] /uri/ { … }
註:
1、~   為區分大小寫符合
2、~ * 為不區分大小寫符合
3、!~和!~*分別為區分大小寫不符及不區分大小寫不符

示例一:

location  / { }

符合任何查詢,因為所有請求都以/ 開頭。但是正規表示式規則將被優先和查詢匹配。

範例二:

 代码如下 复制代码
location =/ {}

只符合/

範例三:

 代碼如下 複製程式碼
location ~ * .(gif|jpg|jpeg)$ {
 代码如下 复制代码
location ~* .(gif|jpg|jpeg)$ {
rewrite .(gif|jpg)$ /logo.png;
rewrite .(gif|jpg)$ /logo.png;

注意:不區分大小寫符合任何以gif,jpg,jpeg結尾的檔案


nginx location應用實例
 代码如下 复制代码

location = / {
 # 只匹配 / 查询。
 
}location / {
 # 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。
 
}location ^~ /images/ {
 # 匹配任何已 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
 
}location ~* .(gif|jpg|jpeg)$ {
 # 匹配任何已 gif、jpg 或 jpeg 结尾的请求。
 
}location ~* .(gif|jpg|swf)$ {
  valid_referers none blocked start.igrow.cn sta.igrow.cn;
  if ($invalid_referer) {
  #防盗链
  rewrite ^/ http://$host/logo.png;
  }
}
location ~* .(js|css|jpg|jpeg|gif|png|swf)$ {
if (-f $request_filename) {
   #根据文件类型设置过期时间
   expires    1h;
   break;
}
}
location ~* .(txt|doc)${ 
 #禁止访问某个目录
    root /data/www/wwwroot/linuxtone/test;
    deny all;
}

 代碼如下 複製程式碼

location = / {
 # 只符合/ 查詢。
 
}location / {
 # 符合任何查詢,因為所有請求都已 / 開頭。但是正規表示式規則和長的區塊規則將被優先和查詢來匹配。
 
}location ^~ /images/ {
 # 符合任何已 /images/ 開頭的任何查詢並且停止搜尋。任何正規表示式都不會被測試。
 
}location ~* .(gif|jpg|jpeg)$ {
 # 符合任何已 gif、jpg 或 jpeg 結尾的請求。
 
}location ~* .(gif|jpg|swf)$ {
  valid_referers none blocked start.igrow.cn sta.igrow.cn;
  if ($invalid_referer) {  rewrite ^/ http://$host/logo.png;
  }
}
location ~* .(js|css|jpg|jpeg|gif|png|swf)$ {
if (-f $request_filename) {
   #依檔案類型設定過期時間
   expires    1h;
   break;
}

}
   break;}

} #禁止上某個目錄

    root /data/www/wwwroot/linuxtone/test;

    deny all;}
++ 一些可用的全域變數$args$content_length$content_type$document_root$document_uri$host$host$host$host$host$host$host$host$host$host$host$host$host$host$http_user_agent$http_cookie$limit_rate$request_body_file$request_method$remote_addr$remote_port$remote_addr$remote_port >$query_string$scheme$server_protocol$server_addr$server_name$server_port$uri 以上就介紹了 nginx location配置說明,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn