Adiciona um cabeçalho de requisição em mod_proxy baseado no valor de outro cabeçalho de requisição

1

Eu tenho um servidor rodando mod_proxy e eu preciso essencialmente renomear um cabeçalho de requisição. Um proxy mais próximo da origem está retirando o cabeçalho X-Forwarded-For, mas precisamos que os dados persistam, então eu quero adicionar o valor a um cabeçalho diferente para permitir que a origem os pegue.

Da minha leitura do doco não há como renomear um cabeçalho e não consigo ver como passar valores em RequestHeader add in mod_headers.

    
por Glenn Slaven 20.05.2013 / 05:54

1 resposta

4

RequestHeader pode inserir valores de variáveis de ambiente em valores de cabeçalho e SetEnvIf pode definir variáveis de ambiente com base em valores de cabeçalho de solicitação, portanto, a configuração a seguir deve atingir o que você precisa:

SetEnvIf X-Forwarded-For (.*) saved_x_forwarded_for=$1
RequestHeader set X-Custom-Forwarded-For "%{saved_x_forwarded_for}e"

Você deve usar set em vez de add , para que, mesmo que um cliente envie uma solicitação contendo seu cabeçalho personalizado, o valor especificado pelo cliente seja sobrescrito (embora nem isso seja 100% confiável, porque a X-Forwarded-For header também pode ser falsificado). Teste também o que acontece se uma solicitação sem X-Forwarded-For for recebida.

    
por 20.05.2013 / 07:48