nginx的配置文件使用简单灵活,某些部分还具备脚本语言的特点,变量就是其中一个特色。本文将分析变量是如何设计实现的。0.什么是变量脚本语言都有变量这个东西,其作用就是让内容可变,用名称代替可变的内容,所以变量具有赋值和取值的特点。nginx的变量跟php一样,以$开头。两种用法:赋值:set$some_varnginx;取值:$some_var;1.整体设计*创建所有变量只能在配置文件解析,也就是工作进程启动之前创建,有些是内置的变量,有些是自定义的变量。没什么区别,比如$http_host是内置变量,set$some_varsome_val。通过set指定创建的是自定义变量,当然也可以其它方式,如果你自己写模块的话。这时用到cmcf->variables_keys,cmcf->variables 两个数组,数组元素类型为ngx_http_variable_t。*使用变量使用(即拿它的值)要先获取索引(发生在配置阶段),这是为了加快访问速度,然后根据索引拿它的值(发生在运行阶段)。这时用到r->variables数组,数组元素为ngx_http_variable_
点赞 5
浏览 5.3k