У меня есть эта веб-служба, работающая на nginx и fastcgi (php-fpm). Веб-служба используется некоторыми встроенными HTTP-клиентами, которым нужно будет отправлять произвольные заголовки HTTP-запросов при использовании службы. Например:
CLIENT_ID: client1
CLIENT_AUTH_TOKEN: d84ldx
или что-то вроде того.
Я не уверен, будет ли такой запрос захвачен nginx, когда он поступит. Если да, то как nginx будет хранить значения дополнительных заголовков HTTP? И как сказать nginx передать параметры в php?
Я уже пробовал поставить
fastcgi_param CLIETN_ID $client_id
в файл конфигурации conf / fastcgi_params, я предположил, что это поможет nginx сохранить то, что находится в CLIENT_ID в качестве параметра $ client_id. Я также положил
fastcgi_param CLIENT_ID $client_id
просто получить то, что хранится в $ client_id, и передать это php с ключом «CLIENT_ID», чтобы php мог получить к нему доступ с помощью $ _SERVER ['CLIENT_ID'].
К сожалению, это не сработало. Когда я делаю
nginx -t
Получил ошибку "неизвестный параметр client_id". Где я ошибся и как исправить?
Спасибо.
Заголовкам запросов назначаются переменные, начинающиеся с $ http_, поэтому заголовок запроса Client-Id будет храниться в $ http_client_id. пытаться
fastcgi_param CLIENT_ID $http_client_id;
Я почти уверен, что nginx уже передает все заголовки http, поэтому он может быть уже доступен как $ _SERVER ['HTTP_CLIENT_ID']
Вы проверяли, видны ли заголовки в суперглобале $ _SERVER? Я подозреваю, что это может «просто сработать», и вам не придется ничего делать.