先說(shuō)區(qū)別
- last,重寫(xiě)后的規(guī)則,會(huì)繼續(xù)用重寫(xiě)后的值去匹配下面的location。
- break,重寫(xiě)后的規(guī)則,不會(huì)去匹配下面的location。使用新的規(guī)則,直接發(fā)起一次http請(qǐng)求了。
Nginx 配置文件
server {
listen 88;
server_name _;
location /break { # location 1
rewrite ^/break/(.*)$ /bak/$1 break;
}
location /last { # location 2
rewrite ^/last/(.*)$ /bak/$1 last;
}
location /bak { # location 3
default_type text/html;
return 200 $uri;
}
}
訪問(wèn) http://rumenz.com:88/break/one
命中l(wèi)ocation1,瀏覽器地址欄沒(méi)有變,直接去找 /nginx/html/bak/one 文件,由于沒(méi)有這個(gè)文件所以返回404。
瀏覽器
Nginx錯(cuò)誤(error.log)日志
/nginx/html/bak/one failed (2: No such file or directory)
break 表示重寫(xiě)后停止不再匹配 location 塊。
訪問(wèn) http://rumenz.com:88/last/one
命中l(wèi)ocation2,瀏覽器地址欄沒(méi)有變,重新匹配到 location3
last表示重寫(xiě)后跳到location塊再次用重寫(xiě)后的地址匹配
break 和 last 的使用場(chǎng)景
break
文件下載,隱藏保護(hù)真實(shí)文件服務(wù)器。
location /down {
rewrite ^/down/(.*)$ https://rumenz.com/file/$1 break;
}
last
接口地址改寫(xiě),將 https://rumenz.com/api/list 改寫(xiě)成 https://rumenz.com/newapi/list
location /api {
rewrite ^/api/(.*)$ /newapi/$1 last;
}
location /newapi {
default_type Application/json;
return 200 '{"code":200,"msg":"ok","data":["JSON.IM","json格式化"]}';
}
總結(jié)
到此這篇關(guān)于Nginx中break與last區(qū)別的文章就介紹到這了,更多相關(guān)Nginx中break與last區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!