Como faço para passar os cabeçalhos do nginx X-Accel-Redirect de volta para o navegador?

6

Estou usando o recurso nginx X-Accel-Redirect, no qual um backend com proxy (A) pode "redirecionar internamente" o nginx para reprocessar um novo URI (B) como se fosse aquele originalmente fornecido pelo navegador do cliente. / p>

Funciona muito bem ao fazer a requisição B (também proxied) e retornar os cabeçalhos resultantes de B de volta ao navegador do cliente. Até aí tudo bem.

Mas também tenho alguns cabeçalhos de A que eu gostaria de passar também. Em outras palavras, mescle um punhado de cabeçalhos de A com o resultado de B.

Como posso fazer isso? Eu tentei

add_header  X-My-Header  $http_x_my_header;

Mas essa variável $http_x_my_header está vazia, presumivelmente porque a solicitação original não a teve. Eu também tentei $upstream_x_my_header mas está vazio também. Eu tentei coisas como proxy_pass_header X-My-Header; mas não.

    
por Jason Cohen 23.04.2012 / 07:31

1 resposta

1

De acordo com o manual do nginx para proxy_set_header :

Se o valor for uma string vazia, o cabeçalho não será enviado para o desenvolvedor.

Tente usar proxy_set_header X-My-Header "OK" ou talvez uma variável que você gostaria de usar como valor. Isso deve passar para o proxy e também para o usuário.

    
por 24.04.2012 / 10:08