Nginx 配置文件中的 $http_origin

Car*_*ton 12 nginx

我已经看到它在很多与 CORS 相关的示例中使用过,但是 $http_origin 的值在哪里设置?

我检查了Nginx 变量,但没有提及它。并且PHP FastCGI 中没有提及。

Tar*_*ani 13

$http_<headername>是根据请求头自动创建的。你可以看到同样的

https://nginx.org/en/docs/http/ngx_http_core_module.html#var_http_

$http_name

任意请求头域;变量名的最后一部分是转换为小写的字段名,短划线替换为下划线


cns*_*nst 5

如果您仔细查看http://nginx.org/docs/varindex.html,您会注意到$http_该页面上只有一个前缀为 的项目;而且,事实上,这个单项没有任何进一步的后缀,故意通用。

该功能记录在http://nginx.org/r/$http_如下:

$http_name——任意请求头域;变量名的最后一部分是转换为小写的字段名,短划线替换为下划线


但是,如果您查看 nginx 背后的源代码,它确实具有内部优化,用于出于性能原因将某些特定请求标头存储在单个变量中(这些在下面的代码中定义为列表,但此后将它们放入哈希表中在 nginx 的初始化过程中通过ngx_http_variables_add_core_vars()函数)。例如,$http_host,$http_user_agent$http_referer,加上一堆其他变量,这些变量可能必须由某些 nginx 组件在内部处理,或者可能在配置文件中经常使用。

然而,作为最终用户,您真的不必担心这些细节——泛型足以描述整个功能。(事实上​​,它并不特别或流行到足以保证其专门的处理。)$http_name$http_origin