Назад | Перейти на главную страницу

Добавить настраиваемый заголовок в запросы ProxyPass

У меня простой apache vhost:

<VirtualHost *:80>
  ServerName hello.local

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

Все запросы к hello.local перенаправляются на http://localhost:8810/. Я бы хотел добавить заголовок к http-запросу, идущему на http://localhost:8810/ со значением, возвращаемым внешней командой. Что-то вроде

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

Любой способ добиться этого?

Ладно, я понял.

Прежде всего, сценарий, который выполняется и используется для получения значения для вставки в заголовок. Я создал это как /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

Конфигурация 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>

Серверная служба, работающая на http://localhost:8080/ получает customheader со значением из скрипта.

Документация Apache об использовании внешней программы: Вот.