例九 last 和 break标记
last标记在本条rewrite规则执行完后,会对其所在的server { … } 标签重新发起请求;
break标记则在本条规则匹配完成后,停止匹配,不再做后续的匹配。
另有些时候必须使用last,比如在使用alias指令时,而使用proxy_pass指令时则必须使用break。
如果location中rewrite后,还需要进行其他处理,如动态fastcgi请求(.PHP,.jsp)等,要用last继续发起新的请求
(根的location使用last比较好, 因为如果有.php等fastcgi请求还要继续处理
环境:
准备三个页面
mkdir /usr/share/nginx/html/test
echo 'break' > /usr/share/nginx/html/test/break.html
echo 'last' > /usr/share/nginx/html/test/last.html
echo 'test' > /usr/share/nginx/html/test/test.html
break,last标记:
vim /etc/nginx/conf.d/default.conf
server {
listen 80;
location / {
root /usr/share/nginx/html;
index index.html index.php;
}
location /break {
rewrite .* /test/break.html break;
root /usr/share/nginx/html;
}
location /last {
rewrite .* /test/last.html last;
root /usr/share/nginx/html;
}
location /test {
rewrite .* /test/test.html break;
root /usr/share/nginx/html;
}
验证:
elinks ip/break
elinks ip/last
elinks ip/test