我有这个在 nginx 和 fastcgi(php-fpm) 上运行的 Web 服务。某些嵌入式 http 客户端使用该 Web 服务,这些客户端在使用该服务时需要发送一些任意的 http 请求标头。例如:
CLIENT_ID: client1
CLIENT_AUTH_TOKEN: d84ldx
Run Code Online (Sandbox Code Playgroud)
或类似的东西。
我不确定这种请求到达时是否会被 nginx 捕获。如果是这样,nginx 将如何存储额外 HTTP 标头的值?以及如何告诉 nginx 将参数传递给 php?
我已经试过把
fastcgi_param CLIETN_ID $client_id
Run Code Online (Sandbox Code Playgroud)
进入 conf/fastcgi_params 配置文件,我想这将有助于 nginx 将 CLIENT_ID 中的内容存储为 $client_id 参数。我也放
fastcgi_param CLIENT_ID $client_id
Run Code Online (Sandbox Code Playgroud)
只是为了获取 $client_id 中存储的内容并将其作为键控的“CLIENT_ID”传递给 php,因此 php 可以使用 $_SERVER['CLIENT_ID'] 访问它。
不幸的是,以上没有奏效。当我做
nginx -t
Run Code Online (Sandbox Code Playgroud)
我收到错误“未知参数 client_id”。我在哪里弄错了,如何解决?
谢谢你。
请求头被分配以 $http_ 开头的变量,因此 Client-Id 的请求头将存储在 $http_client_id 中。尝试
fastcgi_param CLIENT_ID $http_client_id;
Run Code Online (Sandbox Code Playgroud)
我很确定 nginx 已经传递了所有的 http 标头,所以它可能已经作为 $_SERVER['HTTP_CLIENT_ID'] 可用
| 归档时间: |
|
| 查看次数: |
9557 次 |
| 最近记录: |