Назад | Перейти на главную страницу

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 оно имеет пустое значение :(

как я могу передать настраиваемый заголовок от клиента к бэкэнду (php) через nginx?

Я вижу проблему в том, что в настраиваемом заголовке нельзя использовать подчеркивание. Вместо ACCESS_TOKEN я должен использовать ACCESS-TOKEN в качестве имени заголовка, тогда nginx действительно передает его автоматически.

И было найдено объяснение, как исправить в этом вопросе StackOverflow.