通过echo模块可以输出nginx内置变量和一些请求头信息,但是我发现echo $Host, echo $http_Cookie这样是可以的,但是echo $http_User-Agent, echo $http_my-header这种的话就不能输出,my-header是自定义的头部是不是头部的名字里有横杠“-”的,echo就不能输出?
Hello! 2014-03-02 19:49 GMT-08:00 Jian Wu: > 我刚发现,原来头部中的横杠都会被转化为下划线。也就是输出my-header头部的话,需要写成echo $http_my_header,而不是echo > $http_my-header > $http_my-header 不是合法的 NGINX 变量名,因为变量名中不允许有间隔符。当然 $http_ 变量是 NGINX 标准的 ngx_http_core 模块提供的。其官方文档对记法有明确的说明: http://nginx.org/en/docs/http/ngx_http_core_module.html#var_http_ 这和 ngx_echo 模块并无关系;对于其他模块也一样。 Regards, -agentzh