我有这个在nginx和fastcgi(php-fpm)上运行的web服务。 Web服务被一些embedded的http客户端使用,这些客户端在使用服务时需要发送一些任意的http请求标头。 例如:
CLIENT_ID: client1 CLIENT_AUTH_TOKEN: d84ldx
或类似的东西。
我不确定这种请求是否会在nginx到达时被捕获。 如果是这样,nginx将如何存储额外的HTTP头的值? 以及如何告诉nginx将parameter passing给php?
我已经试过了
fastcgi_param CLIETN_ID $client_id
conf / fastcgi_paramsconfiguration文件,我认为这将帮助nginx存储在CLIENT_ID什么作为$ client_id参数。 我也放
fastcgi_param CLIENT_ID $client_id
只需获取$ client_id中存储的内容并将其作为键入的“CLIENT_ID”传递给php,这样php就可以用$ _SERVER ['CLIENT_ID']来访问它。
不幸的是,上面没有解决。 当我做
nginx -t
我得到错误“未知参数client_id”。 我在哪里弄错了,如何解决?
谢谢。
请求标头被分配了以$ http_开始的variables,因此Client-Id的请求标头将存储在$ http_client_id中。 尝试
fastcgi_param CLIENT_ID $http_client_id;
我很确定,nginx已经传递了所有的http头文件,所以它可能已经可以作为$ _SERVER ['HTTP_CLIENT_ID']
你有没有检查头文件是否在$ _SERVER超全局中可见? 我怀疑这可能“只是工作”,而不必做任何事情。