Passando cabeçalhos arbitrários de requisições http para o nginx e depois para o php

1

Eu tenho este serviço da web que está sendo executado em nginx e fastcgi (php-fpm). O serviço da web é usado por alguns clientes http incorporados que precisarão enviar alguns cabeçalhos de solicitação HTTP arbitrários quando estiverem usando o serviço. Por exemplo:

CLIENT_ID: client1
CLIENT_AUTH_TOKEN: d84ldx

ou algo parecido.

Não tenho certeza se esse tipo de solicitação será capturado pelo nginx quando chegar. Em caso afirmativo, como o nginx armazenaria os valores dos cabeçalhos HTTP extras? E como dizer ao nginx para passar os parametros para php?

Eu já tentei colocar

fastcgi_param CLIETN_ID $client_id 

no arquivo de configuração conf / fastcgi_params, eu suponho que isso ajudará o nginx a armazenar o que está em CLIENT_ID como o parâmetro $ client_id. Eu também coloquei

fastcgi_param CLIENT_ID $client_id

simplesmente para buscar o que está armazenado em $ client_id e passá-lo para php como 'CLIENT_ID', então o php pode acessá-lo com $ _SERVER ['CLIENT_ID'].

Infelizmente, o acima não funcionou. Quando eu faço

nginx -t 

Eu recebi o erro "unknow parameter client_id". Onde eu entendi errado e como consertar isso?

Obrigado.

    
por Shawn 12.04.2011 / 03:39

2 respostas

5

Os cabeçalhos de solicitação são variáveis atribuídas a partir de $ http_, portanto, um cabeçalho de solicitação de Client-Id seria armazenado em $ http_client_id. tente

fastcgi_param CLIENT_ID $http_client_id;

Tenho certeza de que o nginx já passa todos os cabeçalhos http, portanto ele já pode estar disponível como $ _SERVER ['HTTP_CLIENT_ID']

    
por 12.04.2011 / 21:35
0

Você verificou se os cabeçalhos estão visíveis na superglobal $ _SERVER? Eu suspeito que isso possa "simplesmente funcionar" sem que você tenha que fazer nada.

    
por 12.04.2011 / 03:42

Tags