Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令。 Location 指令,是用來為符合的 URI 進行配置,URI 即語法中的”/uri/”,可以是字串或正規表示式。但如果要使用正規表示式,則必須指定前綴。
nginx location語法
基本語法:location [=|~|~*|^~] /uri/ { … }
= 嚴格匹配。如果這個查詢匹配,那麼將停止搜尋並立即處理此請求。
~ 為區分大小寫符合(可用正規表示式)
~* 為不區分大小寫符合(可用正規表示式)
!~和!~*分別為區分大小寫不符及不區分大小寫不符
^~ 如果把這個前綴用於一個常規字串,那麼告訴nginx 如果路徑匹配那麼不測試正則表達式。
Location語法語法:location [=|~|~*|^~] /uri/ { … }
註:
1、~ 為區分大小寫符合
2、~ * 為不區分大小寫符合
3、!~和!~*分別為區分大小寫不符及不區分大小寫不符
示例一:
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教程有興趣的朋友有所幫助。