我想从客户端RESTful应用程序(JS)传递一些自定义标题(ACCESS_TOKEN)到应用程序服务器(php-fpm)。
我读过nginx应该通过所有的http头到PHP,但不知何故,它不来我的PHP 🙁
我可以看到它在萤火虫http://o7.no/N6DM7q,但不能在$ _SERVERvariables中看到它。 它只是不存在于$ _SERVER数组中。
我想我需要手动通过它。 现在我的configuration如下所示:
location @php-fpm { include /etc/nginx/fastcgi_params; fastcgi_pass unix:/tmp/php5-fpm.sock; fastcgi_param REQUEST_URI /index.php$request_uri; fastcgi_param SCRIPT_FILENAME /htdocs/index.php; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_param DOCUMENT_ROOT /htdocs; } }
当我在位置定义中添加新行时:
location @php-fpm { include /etc/nginx/fastcgi_params; ... fastcgi_param ACCESS_TOKEN $http_access_token; } }
或者即使我将它添加到fastcgi_params文件它不会帮助:(
如果我把位置部分放在下一行:
fastcgi_param ACCESS_TOKEN $http_access_token;
然后在PHP中它有空值:(
我怎么可以通过nginx将自定义标头从客户端传递到后端(PHP)?
我看到问题在自定义标题不能使用下划线。 而不是ACCESS_TOKEN,我必须使用ACCESS-TOKEN作为标题名称,然后nginx真的自动传递它。
并解释如何解决已经发现在这个StackOverflow的问题 。