语法:set $varname 'hello';
作用域:server,location,if
Nginx 变量名的可见范围虽然是整个配置,但每个请求都有所有变量的独立副本或者说都有各变量用来存放值的容器的独立副本,彼此互不干扰。
server {
location /aaa {
echo $zoo;
}
location /bbb {
set $zoo 'Hello World!!!';
echo '$zoo';
}
}
#把 /bbb 注释
restart error nginx: [emerg] unknown "zoo" variable
#把 /bbb 解开注释
#curl 120.27.105.225/bbb——> Hello Wold;
#curl 120.27.105.225/aaa——>;
server {
location /ccc {
set $foo "Hello Wold";
rewrite ^ /ddd last;
}
location /ddd {
echo '$foo';
}
}
# curl 127.0.0.1/ccc——> Hello Wold;
# 既然是内部跳转,当前正在处理的请求就还是原来那个,只是当前的 location 发生了变化,