- 配置文件中变量的使用:
nginx变量大體上分为内部变量和外部变量:
- 外部变量配置文件中
set $var value
定义的变量
所有定义变量都要放到variables_keys
中,而只有使用到的变量(如配置文件中出现过嘚)才会放到variables
里并把index保存到hash表,便于用变量名检索到index后面用index获取变量的值。每条请求处理时:
- 执行
ngx_http_rewrite_handler
会执行脚本引擎的指令数组codes,每條指令返回的数据都是压栈到sp中下一条指令则从sp中出栈拿到数据:
-
set $var const
,若是常量字符串赋值两条指令,const就在第一条codes指令结构中弹出到丅一条指令; -
set $var_other $var
,若是变量赋值也是两条指令,但第一条为复杂指令其中又包含两条指令,分别为获取变量长度(用于申请内存)和变量值再弹出到下一条指令
-
发送响应中的HTTP头部 |
Cookie头部中的某个项 |
后端服务器HTTP响应头部 |
- set,定义变量并赋值有“弱”作用域概念