nginx & php-fpm e cabeçalho customizado

4

Gostaria de passar um cabeçalho personalizado (ACCESS_TOKEN) do aplicativo RESTful do cliente (JS) para o servidor de aplicativos (php-fpm).

Eu tinha lido que o nginx deveria passar todos os cabeçalhos http para php, mas de alguma forma ele não vem ao meu php: (

Eu posso ver isso no link do firebug, mas não consigo vê-lo na variável $ _SERVER. simplesmente não existe na matriz $ _SERVER.

Estou pensando que preciso passá-lo manualmente. Agora minha configuração é assim:

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;
    }
}

e quando adiciono nova linha na definição da localização:

location @php-fpm {
    include /etc/nginx/fastcgi_params;
    ...
    fastcgi_param ACCESS_TOKEN $http_access_token;
    }
}

ou mesmo se eu vou adicioná-lo no arquivo fastcgi_params, isso não ajuda: (

se eu colocar em posição de localização na próxima linha:

 fastcgi_param ACCESS_TOKEN $http_access_token;

depois no php tem valor vazio: (

como posso passar o cabeçalho personalizado do cliente para o backend (php) via nginx?

    
por nixer 30.06.2012 / 18:31

1 resposta

4

Eu vejo problema em que no cabeçalho personalizado não pode ser usado sublinhado. Em vez de ACCESS_TOKEN eu tenho que usar ACCESS-TOKEN como nome do cabeçalho, então o nginx realmente passa automaticamente.

E a explicação de como corrigir foi encontrada neste StackOverflow pergunta .

    
por 30.06.2012 / 19:52

Tags