2015-12-15 166 views
2

我已经用PHP-FPM安装了NGINX框。一切都很好,但是我对该框的请求发送了一个额外的请求头,例如:http_a_xpto(是的,它以“http_”开头,我无法更改它)。NGINX允许带下划线的标头

出于某种原因,所有带下划线(_)的标头都会被忽略,并且无法在PHP $ _SERVER var上捕获。

我已启用“underscores_in_headers on;”在http指令中,甚至在服务器指令上,在NGINX配置文件中。

这是缺少我的配置?

谢谢!

+0

我将删除我的答案,因为[this](http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_pass_request_headers)表示'nginx'默认传递所有请求标头。抱歉转移。 –

+2

我已经确认'http'容器中的'underscores_in_headers on;'是您需要使用包含下划线的请求标头填充SERVER变量。确保你重启了'nginx'。 –

回答

0

理查德是对的。

因此,显然它似乎只有在“服务nginx重新启动”时,加载了HTTP指令中的该标志。对于生产环境,在“通常”不重新启动但重新加载的情况下,这可能是一个问题。

这是一个输出的经验,因为我没有发现任何有关HTTP指令更改的信息只能在重新启动时使用。如果有人有解释的链接,请在此分享。

谢谢!