Adicione um cabeçalho personalizado aos pedidos ProxyPass

8

Eu tenho um simples vache apache:

<VirtualHost *:80>
  ServerName hello.local

  ProxyPass / http://localhost:8810/
  ProxyPassReverse / http://localhost:8810/
</VirtualHost>

Todos os pedidos para hello.local são representados por procuração para http://localhost:8810/ . O que eu gostaria de fazer é adicionar um cabeçalho à solicitação http, indo para http://localhost:8810/ com um valor retornado por um comando externo. Algo como

Header set MyHeader ${/usr/bin/an_external_program}

Qualquer maneira de conseguir isso?

    
por Simon 30.04.2014 / 14:42

1 resposta

7

Ok, eu entendi.

Primeiro de tudo, o script que é executado e que é usado para obter o valor para inserir no cabeçalho. Eu criei isso como /opt/apache/debug.sh :

#!/bin/bash

#this script just loops forever and outputs a random string
#every time it receives something on stdin

while read
do
        cat /dev/urandom|head -c12|base64
done

Configuração do Apache:

<VirtualHost *:80>
        ServerName light.nik

        RewriteEngine On

        RewriteMap doheader prg:/opt/apache/debug.sh
        RewriteRule (.*) - [E=customheader:${doheader:},P]

        RequestHeader set customheader %{customheader}e

        ProxyPass / http://localhost:8080/
        ProxyPassReverse / http://localhost:8080/
</VirtualHost>

O serviço de back-end em execução no http://localhost:8080/ recebe o customheader com o valor do script.

A documentação do Apache sobre o uso de programas externos é aqui .

    
por 30.04.2014 / 19:26