ProxyPass 요청에 사용자 정의 헤더 추가 싶은 일은 http http://localhost:8810/명령에 외부 명령으로

간단한 아파치 호스트가 있습니다.

<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

아파치 설정 :

<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>

실행중인 백엔드 서비스 는 스크립트에서 with 값 을 http://localhost:8080/받습니다 customheader.

외부 프로그램 사용에 관한 Apache 문서는 여기에 있습니다 .


답변