nginx & php-fpm и пользовательский заголовок
Я хотел бы передать пользовательский заголовок (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 оно имеет пустое значение sad
Как я могу передать пользовательский заголовок от клиента к бэкэнду (php) через nginx?
1 ответ
Я вижу проблему в том, что в пользовательском заголовке нельзя использовать подчеркивание. Вместо ACCESS_TOKEN я должен использовать ACCESS-TOKEN в качестве имени заголовка, тогда nginx действительно передает его автоматически.
И объяснение того, как это исправить, было найдено в этом вопросе StackOverflow.