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.

Другие вопросы по тегам