Я хотел бы передать пользовательский заголовок (ACCESS_TOKEN) из клиентского приложения RESTful (JS) на сервер приложений (php-fpm).
Я читал, что nginx должен передавать все заголовки http на php, но почему-то это не доходит до моего php :(
Я вижу это в firebug http://o7.no/N6DM7q но не вижу его в переменной $ _SERVER. его просто нет в массиве $ _SERVER.
Думаю, надо вручную передать. Теперь мой конфиг выглядит так:
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 оно имеет пустое значение :(
как я могу передать настраиваемый заголовок от клиента к бэкэнду (php) через nginx?
Я вижу проблему в том, что в настраиваемом заголовке нельзя использовать подчеркивание. Вместо ACCESS_TOKEN я должен использовать ACCESS-TOKEN в качестве имени заголовка, тогда nginx действительно передает его автоматически.
И было найдено объяснение, как исправить в этом вопросе StackOverflow.